From 275b39c08c170ee466bcff1f21362f3cf79fe265 Mon Sep 17 00:00:00 2001 From: David Dykstal Date: Thu, 30 Aug 2007 19:42:39 +0000 Subject: [PATCH] [197199] fix persistence when renaming profiles --- .../rse/internal/core/model/SystemProfileManager.java | 11 ++++++++--- .../rse/internal/persistence/dom/RSEDOMExporter.java | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/model/SystemProfileManager.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/model/SystemProfileManager.java index a451f1e345f..e95345b9b02 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/model/SystemProfileManager.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/model/SystemProfileManager.java @@ -13,6 +13,7 @@ * Contributors: * David Dykstal (IBM) - created and used RSEPreferencesManager * - moved SystemPreferencesManager to a new plugin + * Kevin Doyle (IBM) - [197199] Renaming a Profile doesn't cause a save ********************************************************************************/ package org.eclipse.rse.internal.core.model; @@ -173,9 +174,13 @@ public class SystemProfileManager implements ISystemProfileManager { boolean isActive = isSystemProfileActive(profile.getName()); String oldName = profile.getName(); profile.setName(newName); - if (isActive) RSEPreferencesManager.renameActiveProfile(oldName, newName); -// invalidateCache(); - // FIXME RSEUIPlugin.getThePersistenceManager().save(this); + if (isActive) { + RSEPreferencesManager.renameActiveProfile(oldName, newName); + } + // Commit the profile to reflect the name change + RSECorePlugin.getThePersistenceManager().commitProfile(profile, 5000); + // Delete the profile by the old name, which is done in a separate job. + RSECorePlugin.getThePersistenceManager().deleteProfile(profile.getPersistenceProvider(), oldName); } /* (non-Javadoc) diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/dom/RSEDOMExporter.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/dom/RSEDOMExporter.java index a5addeabda5..826dda9f6a0 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/dom/RSEDOMExporter.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/dom/RSEDOMExporter.java @@ -14,6 +14,7 @@ * Martin Oberhuber (Wind River) - [175262] IHost.getSystemType() should return IRSESystemType * Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType * Kevin Doyle (IBM) - [163883] Multiple filter strings are disabled + * Kevin Doyle (IBM) - [197199] Renaming a Profile doesn't cause a save ********************************************************************************/ package org.eclipse.rse.internal.persistence.dom; @@ -104,6 +105,8 @@ public class RSEDOMExporter implements IRSEDOMExporter { } if (clean || profile.isDirty() || dom.isDirty()) { + // Doing a rename requires the dom to update it's name + dom.setName(profile.getName()); dom.clearAttributes(); dom.addAttribute(IRSEDOMConstants.ATTRIBUTE_DEFAULT_PRIVATE, getBooleanString(profile.isDefaultPrivate())); dom.addAttribute(IRSEDOMConstants.ATTRIBUTE_IS_ACTIVE, getBooleanString(profile.isActive()));