Пример #1
0
        public ScreenSettings Read(String file, ScreenSettingsEntryType entry)
        {
            ScreenSettings result = null;

            if (ReadingQueries.ContainsKey(entry))
            {
                try
                {
                    XDocument configFile  = XDocument.Load(file);
                    XElement  rootElement = configFile.XPathSelectElement("WargameModInstallerConfig/Settings/UI/Screens");
                    if (rootElement != null)
                    {
                        result = ReadingQueries[entry](rootElement);
                    }
                }
                catch (XmlException ex)
                {
                    WargameModInstaller.Common.Logging.LoggerFactory.Create(this.GetType()).Error(ex);

                    throw;
                }
            }

            return(result);
        }
Пример #2
0
        private ScreenSettings ReadScreenSettings(XElement source, ScreenSettingsEntryType entryType)
        {
            ScreenSettings result = null;

            var screenElemet = source.Element(entryType.Name);

            if (screenElemet != null)
            {
                result = new ScreenSettings(entryType);

                XElement headerElement = screenElemet.Element("Header");
                if (headerElement != null)
                {
                    result.Header = headerElement.Attribute("Text").ValueNullSafe() ??
                                    headerElement.ValueNullSafe();
                }

                XElement descriptionElement = screenElemet.Element("Description");
                if (descriptionElement != null)
                {
                    result.Description = descriptionElement.Attribute("Text").ValueNullSafe() ??
                                         descriptionElement.ValueNullSafe();
                }

                XElement imagePathElement = screenElemet.Element("BackgroundImage");
                if (imagePathElement != null)
                {
                    String imagePath = imagePathElement.Attribute("Path").ValueNullSafe() ??
                                       imagePathElement.ValueNullSafe();

                    result.Background = PathUtilities.IsValidRelativePath(imagePath) ?
                                        new ResourcePath(imagePath) :
                                        null;
                }
            }

            return(result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="entryType"></param>
        /// <returns></returns>
        public ScreenSettings GetScreenSettings(ScreenSettingsEntryType entryType)
        {
            ScreenSettings settingsValue = screenSettingsReader.Read(configFilePath, entryType);

            if (settingsValue == null)
            {
                //get a default state settings if the reader is unable to read one from the config file
                settingsValue = settingsFactory.CreateSettings <ScreenSettings>(entryType);
            }
            else
            {
                //If any of the properties doesn't have value, assign a default one
                if (settingsValue.Header == null)
                {
                    settingsValue.Header = settingsFactory.CreateSettings <ScreenSettings>(entryType).Header;
                }

                if (settingsValue.Description == null)
                {
                    settingsValue.Description = settingsFactory.CreateSettings <ScreenSettings>(entryType).Description;
                }

                if (settingsValue.Background == null ||
                    settingsValue.Background.PathType == ResourcePathType.Unknown ||
                    !ResourceExist(settingsValue.Background))
                {
                    settingsValue.Background = settingsFactory.CreateSettings <ScreenSettings>(entryType).Background;
                }
            }

            if (ReplacePlaceholdersInDefaultScreenText)
            {
                ReplaceScreenSettingsTextPlaceholders(settingsValue);
            }

            return(settingsValue);
        }
Пример #4
0
        private ScreenSettings ReadSuccessfulInstallScreenSettings(XElement source, ScreenSettingsEntryType entryType)
        {
            SuccessfulInstallScreenSettings result = null;

            return(result);
        }