protected override void AddNewValue(PopupEditors.EditStringResult addKey)
        {
            IEditableScripts script = Controller.CreateNewEditableScripts(null, null, null, true);

            if (List == null)
            {
                Value = Controller.CreateNewEditableScriptDictionary(ElementName, AttributeName, addKey.Result, script, true);

                // Script will have been cloned, so ensure we use a reference to the script that actually appears in the dictionary
                script = List[addKey.Result];
            }
            else
            {
                List.Add(addKey.Result, script);
            }

            PopupEditors.EditScript(Controller, ref script, null, null, false, () => RaiseDirty(new DataModifiedEventArgs(null, List)));
        }
        protected override void EditValue(string key)
        {
            IEditableScripts script = List[key];

            PopupEditors.EditScript(Controller, ref script, null, null, false, () => RaiseDirty(new DataModifiedEventArgs(null, List)));
        }