From 7af53f80b5371dc70fa0238d3b4653f209cbb817 Mon Sep 17 00:00:00 2001 From: Matt Casters Date: Thu, 1 Aug 2019 14:42:21 +0200 Subject: [PATCH] Issue #31, #19 --- .../kettle/env/spoon/EnvironmentHelper.java | 3 +++ .../org/kettle/env/util/EnvironmentUtil.java | 4 ++- .../env/xp/SpoonStartEnvironmentPrompt.java | 26 +++++++++++++++---- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/kettle/env/spoon/EnvironmentHelper.java b/src/main/java/org/kettle/env/spoon/EnvironmentHelper.java index 9df2dda..b8fe4f7 100755 --- a/src/main/java/org/kettle/env/spoon/EnvironmentHelper.java +++ b/src/main/java/org/kettle/env/spoon/EnvironmentHelper.java @@ -165,6 +165,9 @@ public static void editActiveEnvironment() { if ( dialog.open() ) { MetaStoreFactory factory = EnvironmentSingleton.getEnvironmentFactory(); factory.saveElement( environment ); + if (!environment.getName().equals( activeEnvironment )) { + factory.deleteElement( activeEnvironment ); + } EnvironmentUtil.enableEnvironment( environment, spoon.getMetaStore() ); } diff --git a/src/main/java/org/kettle/env/util/EnvironmentUtil.java b/src/main/java/org/kettle/env/util/EnvironmentUtil.java index 516cbf3..945ab7d 100644 --- a/src/main/java/org/kettle/env/util/EnvironmentUtil.java +++ b/src/main/java/org/kettle/env/util/EnvironmentUtil.java @@ -129,7 +129,9 @@ public static void enableEnvironment( Environment environment, DelegatingMetaSto // Refresh the currently active graph // - spoon.refreshGraph(); + if (spoon.getActiveMeta()!=null) { + spoon.refreshGraph(); + } } } diff --git a/src/main/java/org/kettle/env/xp/SpoonStartEnvironmentPrompt.java b/src/main/java/org/kettle/env/xp/SpoonStartEnvironmentPrompt.java index 1a1a848..fda8a34 100644 --- a/src/main/java/org/kettle/env/xp/SpoonStartEnvironmentPrompt.java +++ b/src/main/java/org/kettle/env/xp/SpoonStartEnvironmentPrompt.java @@ -63,19 +63,35 @@ public class SpoonStartEnvironmentPrompt implements ExtensionPointInterface { EnvironmentsDialog environmentsDialog = new EnvironmentsDialog( spoon.getShell(), spoon.getMetaStore() ); selectedEnvironment = environmentsDialog.open(); } + if ( StringUtils.isNotEmpty( selectedEnvironment ) ) { + Environment environment = EnvironmentSingleton.getEnvironmentFactory().loadElement( selectedEnvironment ); + if (environment==null) { + // Environment no longer exists, pop up dialog + // + EnvironmentsDialog environmentsDialog = new EnvironmentsDialog( spoon.getShell(), spoon.getMetaStore() ); + selectedEnvironment = environmentsDialog.open(); + if (selectedEnvironment==null) { + return; // Canceled + } + environment = EnvironmentSingleton.getEnvironmentFactory().loadElement( selectedEnvironment ); + } + // Save the last used configuration // EnvironmentConfigSingleton.getConfig().setLastUsedEnvironment( selectedEnvironment ); EnvironmentConfigSingleton.saveConfig(); - Environment environment = EnvironmentSingleton.getEnvironmentFactory().loadElement( selectedEnvironment ); - logChannelInterface.logBasic( "Setting environment : '" + environment.getName() + "'" ); - - // Set system variables for KETTLE_HOME, PENTAHO_METASTORE_FOLDER, ... + // Double check! // - EnvironmentUtil.enableEnvironment( environment, spoon.getMetaStore() ); + if (environment!=null) { + logChannelInterface.logBasic( "Setting environment : '" + environment.getName() + "'" ); + + // Set system variables for KETTLE_HOME, PENTAHO_METASTORE_FOLDER, ... + // + EnvironmentUtil.enableEnvironment( environment, spoon.getMetaStore() ); + } } } } catch ( Exception e ) {