Beispiel #1
0
        public SaveablePreset AddPreset(SaveablePreset inPreset)
        {
            if (!mPresets.ContainsKey(inPreset.Name))
            {
                mPresets.Add(inPreset.Name, inPreset);
                inPreset.Path = GetCurrentPath(inPreset);

                return(inPreset);
            }

            return(null);
        }
Beispiel #2
0
        private SaveablePreset LoadPresetFile(string inPath)
        {
            FileInfo info = new FileInfo(inPath);

            if (info.Exists && info.Extension.Equals(".xml"))
            {
                SaveablePreset preset = null;
                if (CreateInstance(out preset, info.Name.Substring(0, info.Name.Length - info.Extension.Length)) == "")
                {
                    return(preset);
                }
            }

            return(null);
        }
Beispiel #3
0
        public string CreateInstance(out SaveablePreset inPreset, string inName)
        {
            string error = "";

            try
            {
                inPreset      = (SaveablePreset)Activator.CreateInstance(_presetType, new object[0]);
                inPreset.Name = inName;
                mPresets.Add(inName, inPreset);
                LoadPreset(inPreset);
            }
            catch (Exception e) { error += "Cannot create instance of type " + _presetType.Name + "! (" + ExceptionHelper.GetMessages(e) + ")"; inPreset = null; }

            return(error);
        }
Beispiel #4
0
        public object GetPresetValue(string inKey)
        {
            string[] keySplit = inKey.Split('.');

            if (!mPresets.ContainsKey(keySplit[0]))
            {
                //see if there is a corresponding file
                SaveablePreset preset = LoadPresetFile(GetCurrentRoot(PresetTypes.Default) + "\\" + keySplit[0] + ".xml");
                if (preset != null)
                {
                    return(preset.GetPropertyValue(keySplit[1]));
                }
            }
            else
            {
                return(mPresets[keySplit[0]].GetPropertyValue(keySplit[1]));
            }

            return(null);
        }
Beispiel #5
0
        public bool SetPresetValue(string inKey, object inValue)
        {
            string[]       keySplit = inKey.Split('.');
            SaveablePreset preset   = null;

            if (!mPresets.ContainsKey(keySplit[0]))
            {
                //see if there is a corresponding file
                preset = LoadPresetFile(GetCurrentRoot(PresetTypes.Default) + "\\" + keySplit[0] + ".xml");
            }
            else
            {
                preset = mPresets[keySplit[0]];
            }

            if (preset != null)
            {
                preset.SetPropertyValue(keySplit[1], inValue);
            }

            return(preset != null);
        }
Beispiel #6
0
        private string LoadPresets(string inPath)
        {
            if (inPath == "")
            {
                return("Invalid path (" + inPath + ")");
            }

            DirectoryInfo RootDir = new DirectoryInfo(inPath);

            string error = "";

            if (!RootDir.Exists)
            {
                try
                {
                    Directory.CreateDirectory(RootDir.FullName);
                }
                catch (Exception e) { error += "Cannot create directory " + RootDir.FullName + "! (" + ExceptionHelper.GetMessages(e) + ")"; }
            }

            if (error == "")
            {
                FileInfo[] inFiles = RootDir.GetFiles();

                foreach (FileInfo CurPref in inFiles)
                {
                    if (CurPref.Extension.Equals(".xml"))
                    {
                        SaveablePreset preset = GetPresetFromPath(CurPref.FullName);
                        if (preset == null || preset.Obsolete)
                        {
                            error += CreateInstance(out preset, CurPref.Name.Substring(0, CurPref.Name.Length - CurPref.Extension.Length));
                        }
                    }
                }
            }

            return(error);
        }
Beispiel #7
0
 private string GetFullName(SaveablePreset inPreset)
 {
     return(_name + "_" + inPreset.Name);
 }
Beispiel #8
0
 private string GetCurrentPath(SaveablePreset saveablePreset)
 {
     return(GetCurrentRoot(saveablePreset.PresetType) + "\\" + saveablePreset.Name + ".xml");
 }
Beispiel #9
0
 private bool SavePreset(SaveablePreset saveablePreset)
 {
     return(saveablePreset.Save(GetCurrentPath(saveablePreset)));
 }
Beispiel #10
0
 private bool LoadPreset(SaveablePreset saveablePreset)
 {
     return(saveablePreset.LoadPreset(GetCurrentPath(saveablePreset)));
 }