You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2021/06/23 15:39:18 UTC

[incubator-hop] branch master updated: HOP-2995 - Project's options dialog let you enter a non existent project

This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hop.git


The following commit(s) were added to refs/heads/master by this push:
     new adebcc8  HOP-2995 - Project's options dialog let you enter a non existent project
     new f0a8a43  Merge pull request #897 from sramazzina/PRJ-FIXES
adebcc8 is described below

commit adebcc81fbbafa8edeafde4f3b4673aea6259d55
Author: sergio.ramazzina <se...@serasoft.it>
AuthorDate: Wed Jun 23 15:50:38 2021 +0200

    HOP-2995 - Project's options dialog let you enter a non existent project
---
 .../config/ProjectsConfigOptionPlugin.java         | 35 +++++++++++++++++++---
 .../apache/hop/projects/gui/ProjectsGuiPlugin.java |  4 +--
 .../config/messages/messages_en_US.properties      |  5 ++++
 .../config/messages/messages_it_IT.properties      |  8 +++--
 4 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/plugins/misc/projects/src/main/java/org/apache/hop/projects/config/ProjectsConfigOptionPlugin.java b/plugins/misc/projects/src/main/java/org/apache/hop/projects/config/ProjectsConfigOptionPlugin.java
index db75592..a57dd08 100644
--- a/plugins/misc/projects/src/main/java/org/apache/hop/projects/config/ProjectsConfigOptionPlugin.java
+++ b/plugins/misc/projects/src/main/java/org/apache/hop/projects/config/ProjectsConfigOptionPlugin.java
@@ -17,6 +17,8 @@
 
 package org.apache.hop.projects.config;
 
+import org.apache.commons.lang.StringUtils;
+import org.apache.hop.core.Const;
 import org.apache.hop.core.config.plugin.ConfigPlugin;
 import org.apache.hop.core.config.plugin.IConfigOptions;
 import org.apache.hop.core.exception.HopException;
@@ -28,6 +30,7 @@ import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHasHopMetadataProvider;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
+import org.apache.hop.projects.util.ProjectsUtil;
 import org.apache.hop.ui.core.dialog.EnterOptionsDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
 import org.apache.hop.ui.core.gui.GuiCompositeWidgets;
@@ -35,8 +38,10 @@ import org.apache.hop.ui.core.gui.IGuiPluginCompositeWidgetsListener;
 import org.apache.hop.ui.core.widget.ComboVar;
 import org.apache.hop.ui.core.widget.TextVar;
 import org.apache.hop.ui.hopgui.HopGui;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.MessageBox;
 import picocli.CommandLine;
 
 import java.util.ArrayList;
@@ -275,16 +280,38 @@ public class ProjectsConfigOptionPlugin
           ProjectsConfigSingleton.getConfig().setEnvironmentMandatory(environmentMandatory);
           break;
         case WIDGET_ID_DEFAULT_PROJECT:
-          defaultProject = ((ComboVar) control).getText();
-          ProjectsConfigSingleton.getConfig().setDefaultProject(defaultProject);
+          String defProject = ((ComboVar) control).getText();
+          if (!StringUtils.isEmpty(defProject)) {
+            boolean defParentPrjExists = ProjectsUtil.projectExists(defProject);
+            if (!defParentPrjExists) {
+              MessageBox box = new MessageBox(HopGui.getInstance().getShell(), SWT.OK | SWT.ICON_ERROR);
+              box.setText(BaseMessages.getString(PKG, "ProjectConfig.ProjectNotExists.Error.Header"));
+              box.setMessage(BaseMessages.getString(PKG, "ProjectConfig.ProjectNotExists.DefaultProject.Error.Message", defProject));
+              box.open();
+            } else {
+              defaultProject = defProject;
+              ProjectsConfigSingleton.getConfig().setDefaultProject(defaultProject);
+            }
+          }
           break;
         case WIDGET_ID_DEFAULT_ENVIRONMENT:
           defaultEnvironment = ((TextVar) control).getText();
           ProjectsConfigSingleton.getConfig().setDefaultEnvironment(defaultEnvironment);
           break;
         case WIDGET_ID_STANDARD_PARENT_PROJECT:
-          standardParentProject = ((ComboVar) control).getText();
-          ProjectsConfigSingleton.getConfig().setStandardParentProject(standardParentProject);
+          String stdParentProject = ((ComboVar) control).getText();
+          if (!StringUtils.isEmpty(stdParentProject)) {
+            boolean stdParentPrjExists = ProjectsUtil.projectExists(stdParentProject);
+            if (!stdParentPrjExists) {
+              MessageBox box = new MessageBox(HopGui.getInstance().getShell(), SWT.OK | SWT.ICON_ERROR);
+              box.setText(BaseMessages.getString(PKG, "ProjectConfig.ProjectNotExists.Error.Header"));
+              box.setMessage(BaseMessages.getString(PKG, "ProjectConfig.ProjectNotExists.StandardProject.Error.Message", stdParentProject));
+              box.open();
+            } else {
+              standardParentProject = stdParentProject;
+              ProjectsConfigSingleton.getConfig().setStandardParentProject(standardParentProject);
+            }
+          }
           break;
         case WIDGET_ID_STANDARD_PROJECTS_FOLDER:
           standardProjectsFolder = ((TextVar) control).getText();
diff --git a/plugins/misc/projects/src/main/java/org/apache/hop/projects/gui/ProjectsGuiPlugin.java b/plugins/misc/projects/src/main/java/org/apache/hop/projects/gui/ProjectsGuiPlugin.java
index c10ac4a..2808df0 100644
--- a/plugins/misc/projects/src/main/java/org/apache/hop/projects/gui/ProjectsGuiPlugin.java
+++ b/plugins/misc/projects/src/main/java/org/apache/hop/projects/gui/ProjectsGuiPlugin.java
@@ -397,9 +397,7 @@ public class ProjectsGuiPlugin {
                           + Const.CR
                           + prjReferences
                           + Const.CR
-                          + BaseMessages.getString(PKG, "ProjectGuiPlugin.DeleteProject.ProjectReferencedAsParent.Message2"))
-
-          ;
+                          + BaseMessages.getString(PKG, "ProjectGuiPlugin.DeleteProject.ProjectReferencedAsParent.Message2"));
           box.open();
       }
       } catch (Exception e) {
diff --git a/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_en_US.properties b/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_en_US.properties
index 8f3b8bf..4570964 100644
--- a/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_en_US.properties
+++ b/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_en_US.properties
@@ -25,5 +25,10 @@ ProjectConfig.DefaultEnvironment.Message=The default environment to use when non
 ProjectConfig.ParentProject.Message=The parent project to propose when creating projects
 ProjectConfig.StdProjectFolder.Message=GUI: The standard projects folder proposed when creating projects
 
+ProjectConfig.ProjectNotExists.Error.Header=Project doesn''t exists!
+ProjectConfig.ProjectNotExists.DefaultProject.Error.Message=Project ''{0}'' cannot be set as suggested default project because it does not exists!
+ProjectConfig.ProjectNotExists.StandardProject.Error.Message=Project ''{0}'' cannot be set as suggested parent project because it does not exists!
+
+
 ProjectConfig.SavingOption.ErrorDialog.Header=Error
 ProjectConfig.SavingOption.ErrorDialog.Message=Error saving option
diff --git a/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_it_IT.properties b/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_it_IT.properties
index 85233a3..ef0c825 100644
--- a/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_it_IT.properties
+++ b/plugins/misc/projects/src/main/resources/org/apache/hop/projects/config/messages/messages_it_IT.properties
@@ -20,10 +20,14 @@ ProjectConfig.Tab.Name=Progetti
 ProjectConfig.EnableProjectPlugin.Message=Abilita il plugin di gestione progetti
 ProjectConfig.ProjectMandatory.Message=L''uso di un progetto \u00E8 obbligatorio
 ProjectConfig.EnvironmentMandatory.Message=L''uso di un ambiente \u00E8 obbligatorio
-ProjectConfig.DefaultProject.Message=Progetto di default da utilizzare quando non \u00E8 specificato
-ProjectConfig.DefaultEnvironment.Message=Ambiente di default quando non \u00E8 specificato
+ProjectConfig.DefaultProject.Message=Progetto di default da utilizzare quando non specificato
+ProjectConfig.DefaultEnvironment.Message=Ambiente di default quando non specificato
 ProjectConfig.ParentProject.Message=Progetto padre da proporre quando si crea un progetto
 ProjectConfig.StdProjectFolder.Message=GUI: Cartella standard del progetto da proporre durante la creazione
 
+ProjectConfig.ProjectNotExists.Error.Header=Progetto non esiste!
+ProjectConfig.ProjectNotExists.DefaultProject.Error.Message=Il progetto ''{0}'' non pu\u00F2 essere suggerito come progetto di default perch\u00E8 non esiste!
+ProjectConfig.ProjectNotExists.StandardProject.Error.Message=Il progetto ''{0}'' non pu\u00F2 essere suggerito come progetto padre perch\u00E8 non esiste!
+
 ProjectConfig.SavingOption.ErrorDialog.Header=Errore
 ProjectConfig.SavingOption.ErrorDialog.Message=Si \u00E8 verificato un errore salvando l''opzione