public EnumParam(
            string name,
            string wpfName,
            Func <string> descriptionGetter,
            TEnum defaultOption,
            ParamsDescriptionGroup descGroup = null,
            Action <string> afterParsing     = null)
            : base(name, wpfName, descriptionGetter, descGroup, afterParsing)
        {
            // Have to check it in run-time because for some reason C# disallows Enum as generic
            // type constraint (public class EnumParam<TEnum> : Param where TEnum : Enum).
            if (!(defaultOption is Enum))
            {
                throw new ArgumentException("Only enums are allowed as EnumParam type.");
            }

            foreach (var field in typeof(TEnum).GetFields())
            {
                if (field.Name.Equals("value__"))
                {
                    continue;
                }

                options.Add(field.Name, (TEnum)field.GetRawConstantValue());
            }
        }
Exemplo n.º 2
0
 public Flag(
     string name,
     string wpfName,
     Func <string> descriptionGetter,
     ParamsDescriptionGroup descGroup = null)
     : this(name, wpfName, descriptionGetter, false, descGroup)
 {
 }
Exemplo n.º 3
0
 public Flag(
     string name,
     string wpfName,
     Func<string> descriptionGetter,
     ParamsDescriptionGroup descGroup = null)
     : this(name, wpfName, descriptionGetter, false, descGroup)
 {
 }
Exemplo n.º 4
0
 public Flag(
     string name,
     string wpfName,
     Func <string> descriptionGetter,
     bool defaultValue,
     ParamsDescriptionGroup descGroup = null)
     : base(name, wpfName, descriptionGetter, descGroup)
 {
     Value = defaultValue;
 }
Exemplo n.º 5
0
 public Flag(
     string name,
     string wpfName,
     Func<string> descriptionGetter,
     bool defaultValue,
     ParamsDescriptionGroup descGroup = null)
     : base(name, wpfName, descriptionGetter, descGroup)
 {
     Value = defaultValue;
 }
Exemplo n.º 6
0
 public StringParam(
     string name,
     string wpfName,
     Func <string> descriptionGetter,
     string defaultValue,
     ParamsDescriptionGroup descGroup = null,
     Action <string> parsedAction     = null)
     : base(name, wpfName, descriptionGetter, descGroup, parsedAction)
 {
     Value = defaultValue;
 }
Exemplo n.º 7
0
 public StringParam(
     string name,
     string wpfName,
     Func<string> descriptionGetter,
     string defaultValue,
     ParamsDescriptionGroup descGroup = null,
     Action<string> parsedAction = null)
     : base(name, wpfName, descriptionGetter, descGroup, parsedAction)
 {
     Value = defaultValue;
 }
Exemplo n.º 8
0
 public PathParam(
     string name,
     string wpfName,
     Func <string> descriptionGetter,
     string defaultValue,
     string defaultPathToBrowse       = null,
     Action <string> parsedAction     = null,
     ParamsDescriptionGroup descGroup = null)
     : base(name, wpfName, descriptionGetter, defaultValue, descGroup, parsedAction)
 {
     this.defaultPathToBrowse = defaultPathToBrowse;
 }
Exemplo n.º 9
0
 public PathParam(
     string name,
     string wpfName,
     Func<string> descriptionGetter,
     string defaultValue,
     string defaultPathToBrowse = null,
     Action<string> parsedAction = null,
     ParamsDescriptionGroup descGroup = null)
     : base(name, wpfName, descriptionGetter, defaultValue, descGroup, parsedAction)
 {
     this.defaultPathToBrowse = defaultPathToBrowse;
 }
        public MultipleChoiceParam(
            string name,
            string wpfName,
            IEnumerable <string> options,
            IEnumerable <int> defaultOptions,
            Func <string> descriptionGetter,
            ParamsDescriptionGroup descGroup = null)
            : base(name, wpfName, descriptionGetter, descGroup)
        {
            this.options = options.ToArray();

            foreach (var defaultOption in defaultOptions)
            {
                chosenOptions.Add(defaultOption);
            }
        }
        public MultipleChoiceParam(
            string name,
            string wpfName,
            IEnumerable<string> options,
            IEnumerable<int> defaultOptions,
            Func<string> descriptionGetter,
            ParamsDescriptionGroup descGroup = null)
            : base(name, wpfName, descriptionGetter, descGroup)
        {
            this.options = options.ToArray();

            foreach (var defaultOption in defaultOptions)
            {
                chosenOptions.Add(defaultOption);
            }
        }
        public Param(
            string name,
            string wpfName,
            Func <string> descriptionGetter,
            ParamsDescriptionGroup descGroup = null,
            Action <string> parsedAction     = null)
        {
            Name             = name;
            WpfName          = wpfName;
            DescriptionGroup = descGroup;

            this.descriptionGetter = descriptionGetter;

            if (parsedAction != null)
            {
                AfterParsing += (param) => parsedAction(param);
            }
        }
Exemplo n.º 13
0
        public Param(
            string name,
            string wpfName,
            Func<string> descriptionGetter,
            ParamsDescriptionGroup descGroup = null,
            Action<string> parsedAction = null)
        {
            Name = name;
            WpfName = wpfName;
            DescriptionGroup = descGroup;

            this.descriptionGetter = descriptionGetter;

            if (parsedAction != null)
            {
                AfterParsing += (param) => parsedAction(param);
            }
        }
Exemplo n.º 14
0
 public List<Param> GetParamsByGroup(ParamsDescriptionGroup group)
 {
     return groupParamsMap[group.GetHashCode()];
 }
Exemplo n.º 15
0
        public Configuration(string[] supportedAvailability, string publicAvailabilityFlag, string[] supportedLanguages, bool runningGUI)
        {
            ParamsManager = new ParamsManager();

            var groupDescBoth = new ParamsDescriptionGroup(() => Language.Message("ParamGroupDescBoth"));
            var groupDescDir = new ParamsDescriptionGroup(() => Language.Message("ParamGroupDescDir"));
            var groupDescFile = new ParamsDescriptionGroup(() => Language.Message("ParamGroupDescFile"));

            // looking for localization param, before any text display
            LocParam = new EnumParam<LocalizationLanguage>(
                "loc",
                "Localization language",
                () => Language.Message("ParamDescLoc", string.Join(", ", Language.AvailableLangIDs)),
                LocalizationLanguage.INT,
                groupDescBoth,
                arg =>
                {
                    // need to update it right after parsing to allow proper messages
                    Language.LangID = arg;
                });

            PublishFlagsParam = new MultipleChoiceParam(
                "publish",
                "Publish flags",
                supportedAvailability,
                Enumerable.Range(0, supportedAvailability.Length),
                () => Language.Message("ParamDescPublish", publicAvailabilityFlag, string.Join(", ", supportedAvailability)),
                groupDescBoth);

            OutputFormatParam = new EnumParam<OutputFormat>(
                "outputFormat",
                "Output format",
                () => Language.Message("ParamDescOutputFormat"),
                OutputFormat.HTML,
                groupDescBoth);

            LangParam = new MultipleChoiceParam(
                "lang",
                "Languages",
                supportedLanguages,
                Enumerable.Range(0, supportedLanguages.Length),
                () => Language.Message("ParamDescLang", string.Join(", ", supportedLanguages)),
                groupDescDir);

            LinksToAllLangs = new Flag(
                "linksToAllLangs", "Links to all langs", () => Language.Message("ParamDescLinksToAllLangs"), groupDescDir);

            if (runningGUI)
            {
                PublishFlagsParam.Parse(User.Default.SupportedAvailability);
                OutputFormatParam.Parse(User.Default.OutputFormat);
                LangParam.Parse(User.Default.SupportedLanguages);
            }

            TemplateParam = new StringParam(
                "t", "Default template", () => Language.Message("ParamDescT"), runningGUI ? User.Default.DefaultTemplate : Settings.Default.DefaultTemplate, groupDescBoth);
            OutputParam = new StringParam(
                "o", "Output directory", () => Language.Message("ParamDescO"), runningGUI ? User.Default.OutputDirectory : Settings.Default.OutputDirectory, groupDescBoth);
            SourceParam = new StringParam(
                "s", "Source directory", () => Language.Message("ParamDescS"), runningGUI ? User.Default.SourceDirectory : Settings.Default.SourceDirectory, groupDescBoth);
            LogVerbosityParam = new EnumParam<LogVerbosity>(
                "v", "Logging verbosity", () => Language.Message("ParamDescV"), LogVerbosity.Info, groupDescBoth);
            DoxygenCacheParam = new StringParam(
                "doxygenCache", "Doxygen cache location", () => Language.Message("ParamDescDoxygenCache"), "", groupDescBoth);
            RebuildDoxygenCacheParam = new StringParam(
                "rebuildDoxygenCache",
                "If you want to rebuild Doxygen cache put here doxygen exec path",
                () => Language.Message("ParamDescRebuildDoxygenCache"),
                "", groupDescBoth);

            var absoluteSourceDir = new DirectoryInfo(Settings.Default.SourceDirectory).FullName;

            PathPrefixParam = new PathParam(
                "pathPrefix", "Path prefix", () => Language.Message("ParamDescPathPrefix"),
                runningGUI ? User.Default.PathPrefix : absoluteSourceDir,
                runningGUI ? User.Default.SourceDirectory : absoluteSourceDir,
                null, groupDescBoth);

            if (runningGUI)
            {
                HelpFlag = new Flag("h", "", () => Language.Message("ParamDescH"), User.Default.HelpFlag);
                LogOnlyFlag = new Flag("log", "Log Only", () => Language.Message("ParamDescLog"), User.Default.LogOnlyFlag, groupDescBoth);
                PreviewFlag = new Flag("p", "Preview", () => Language.Message("ParamDescP"), User.Default.PreviewFlag, groupDescFile);
                CleanFlag = new Flag("clean", "Clean", () => Language.Message("ParamDescClean"), User.Default.CleanFlag, groupDescBoth);
                LogVerbosityParam.Parse(User.Default.LogVerbosityParam);
            }
            else
            {
                HelpFlag = new Flag("h", "", () => Language.Message("ParamDescH"));
                LogOnlyFlag = new Flag("log", "Log Only", () => Language.Message("ParamDescLog"), groupDescBoth);
                PreviewFlag = new Flag("p", "Preview", () => Language.Message("ParamDescP"),  groupDescFile);
                CleanFlag = new Flag("clean", "Clean", () => Language.Message("ParamDescClean"), groupDescBoth);
            }

            ParamsManager.Add(
                new List<Param>
                    {
                        LocParam,
                        PathPrefixParam,
                        PublishFlagsParam,
                        OutputFormatParam,
                        LangParam,
                        LinksToAllLangs,
                        TemplateParam,
                        OutputParam,
                        SourceParam,
                        LogVerbosityParam,
                        RebuildDoxygenCacheParam,
                        DoxygenCacheParam,
                        HelpFlag,
                        LogOnlyFlag,
                        PreviewFlag,
                        CleanFlag
                    });

            PathsSpec = new StringParam(
                "PathsSpecifier",
                "Semicolon separated documentation source file or directory paths.",
                () => Language.Message("PathSpecParamDesc"),
                runningGUI ? Path.GetFileName(User.Default.PathsSpec) : "",
                null);

            ParamsManager.SetMainParam(PathsSpec);
        }
Exemplo n.º 16
0
 public List <Param> GetParamsByGroup(ParamsDescriptionGroup group)
 {
     return(groupParamsMap[group.GetHashCode()]);
 }