public void SaveAsDefault(ImagePropertiesInfo imageInfo)
        {
            ImageDecoratorsList decorators = imageInfo.ImageDecorators;
            //delete the existing image settings
            DeleteImageSettings(_contextId);

            using (SettingsPersisterHelper contextImageSettings = GetImageSettingsPersister(_contextId, true))
            {
                //loop over the image decorators and save the settings of any decorators that are defaultable.
                StringBuilder sb = new StringBuilder();
                foreach (string decoratorId in decorators.GetImageDecoratorIds())
                {
                    ImageDecorator decorator = decorators.GetImageDecorator(decoratorId);
                    if (decorator.IsDefaultable)
                    {
                        if (sb.Length > 0)
                            sb.Append(",");
                        sb.Append(decorator.Id);
                        using (SettingsPersisterHelper decoratorDefaultSettings = contextImageSettings.GetSubSettings(decoratorId))
                        {
                            PluginSettingsAdaptor settings = new PluginSettingsAdaptor(decoratorDefaultSettings);
                            IProperties decoratorCurrentSettings = decorators.GetImageDecoratorSettings(decoratorId);
                            CopySettings(decoratorCurrentSettings, settings);
                            ImageDecoratorEditorContext editorContext =
                                new ImageDecoratorEditorContextImpl(decoratorCurrentSettings, null, imageInfo, new NoOpUndoUnitFactory(), _decoratorsManager.CommandManager);
                            decorator.ApplyCustomizeDefaultSettingsHook(editorContext, settings);
                        }
                    }
                }
                contextImageSettings.SetString(ImageDecoratorsListKey, sb.ToString());
            }
        }
 /// <summary>
 /// Load the default image decorators for the current image context.
 /// </summary>
 /// <returns></returns>
 public ImageDecoratorsList LoadDefaultImageDecoratorsList()
 {
     using (SettingsPersisterHelper contextImageSettings = GetImageSettingsPersister(_contextId, false))
     {
         ImageDecoratorsList decoratorsList;
         if (contextImageSettings == null)
         {
             decoratorsList = GetInitialLocalImageDecoratorsList();
         }
         else
         {
             decoratorsList = new ImageDecoratorsList(_decoratorsManager, new BlogPostSettingsBag(), false);
             string[] decoratorIds = contextImageSettings.GetString(ImageDecoratorsListKey, "").Split(',');
             foreach (string decoratorId in decoratorIds)
             {
                 ImageDecorator imageDecorator = _decoratorsManager.GetImageDecorator(decoratorId);
                 if (imageDecorator != null) //can be null if the decorator is no longer valid
                 {
                     decoratorsList.AddDecorator(imageDecorator);
                     using (SettingsPersisterHelper decoratorDefaultSettings = contextImageSettings.GetSubSettings(decoratorId))
                     {
                         PluginSettingsAdaptor settings = new PluginSettingsAdaptor(decoratorDefaultSettings);
                         CopySettings(settings, decoratorsList.GetImageDecoratorSettings(decoratorId));
                     }
                 }
             }
         }
         //now add the implicit decorators IFF they aren't already in the list
         decoratorsList.MergeDecorators(GetImplicitLocalImageDecorators());
         return decoratorsList;
     }
 }