public OptionTypeResolverEditorVM(ConditionalTypeEditorVM p_tvmConditionResolverVM, Option p_optOption) { ConditionalTypeEditorVM = p_tvmConditionResolverVM; Option = p_optOption; OptionTypes = Enum.GetValues(typeof(OptionType)); if (Option.OptionTypeResolver is StaticOptionTypeResolver) { StaticOptionTypeResolver = (StaticOptionTypeResolver)Option.OptionTypeResolver; ConditionalOptionTypeResolver = new ConditionalOptionTypeResolver(OptionType.NotUsable); } if (Option.OptionTypeResolver is ConditionalOptionTypeResolver) { StaticOptionTypeResolver = new StaticOptionTypeResolver(OptionType.NotUsable); ConditionalOptionTypeResolver = (ConditionalOptionTypeResolver)Option.OptionTypeResolver; } p_tvmConditionResolverVM.TypeResolver = ConditionalOptionTypeResolver; }
/// <summary> /// The editor to use to edit an <see cref="Option"/>. /// </summary> /// <param name="p_optOption">The <see cref="Option"/> to edit.</param> /// <param name="p_lstModFiles">The list of files in the mod to which the <see cref="XmlScript"/> /// being edited belongs.</param> /// <returns>The editor to use to edit an <see cref="Option"/>. <c>null</c> is returned if the /// current <see cref="XmlScript"/> does not support editing <see cref="Option"/>s.</returns> public override NodeEditor GetOptionEditor(Option p_optOption, IList<VirtualFileSystemItem> p_lstModFiles) { OptionInfoEditorVM vmlOptionInfo = new OptionInfoEditorVM(p_optOption, p_lstModFiles); InstallableFileEditorVM vmlInstallableFile = new InstallableFileEditorVM(null, p_lstModFiles); FileListEditorVM vmlFileList = new FileListEditorVM(vmlInstallableFile, p_optOption.Files); FO3CplConverter cvtConverter = new FO3CplConverter(ScriptType.GetCplParserFactory()); ConditionEditorVM vmlConditionEditor = CreateConditionEditorVM(p_lstModFiles, cvtConverter); ConditionalTypePatternEditorVM vmlPatternEditor = new ConditionalTypePatternEditorVM(vmlConditionEditor, null); ConditionalTypeEditorVM vmlTypeEditor = new ConditionalTypeEditorVM(vmlPatternEditor, cvtConverter, null); OptionTypeResolverEditorVM vmlTypeResolverEditor = new OptionTypeResolverEditorVM(vmlTypeEditor, p_optOption); OptionEditorVM vmlOptionEditor = new OptionEditorVM(vmlOptionInfo, vmlFileList, vmlTypeResolverEditor); return new OptionEditor(vmlOptionEditor); }
public OptionTypeResolverEditorVM(ConditionalTypeEditorVM p_tvmConditionResolverVM, Option p_optOption) { ConditionalTypeEditorVM = p_tvmConditionResolverVM; Option = p_optOption; OptionTypes = Enum.GetValues(typeof(OptionType)); if (Option.OptionTypeResolver is StaticOptionTypeResolver) { StaticOptionTypeResolver = (StaticOptionTypeResolver)Option.OptionTypeResolver; ConditionalOptionTypeResolver = new ConditionalOptionTypeResolver(OptionType.NotUsable); } if (Option.OptionTypeResolver is ConditionalOptionTypeResolver) { StaticOptionTypeResolver = new StaticOptionTypeResolver(OptionType.NotUsable); ConditionalOptionTypeResolver = (ConditionalOptionTypeResolver)Option.OptionTypeResolver; } p_tvmConditionResolverVM.TypeResolver = ConditionalOptionTypeResolver; }
/// <summary> /// The editor to use to edit an <see cref="Option"/>. /// </summary> /// <param name="p_optOption">The <see cref="Option"/> to edit.</param> /// <param name="p_lstModFiles">The list of files in the mod to which the <see cref="XmlScript"/> /// being edited belongs.</param> /// <returns>The editor to use to edit an <see cref="Option"/>. <c>null</c> is returned if the /// current <see cref="XmlScript"/> does not support editing <see cref="Option"/>s.</returns> public virtual NodeEditor GetOptionEditor(Option p_optOption, IList<VirtualFileSystemItem> p_lstModFiles) { OptionInfoEditorVM vmlOptionInfo = new OptionInfoEditorVM(p_optOption, p_lstModFiles); InstallableFileEditorVM vmlInstallableFile = new InstallableFileEditorVM(null, p_lstModFiles); FileListEditorVM vmlFileList = new FileListEditorVM(vmlInstallableFile, p_optOption.Files); CPLTextEditorVM vmlCplTextEditor = new CPLTextEditorVM(new FO3CplHighlightingStrategy(ScriptType.GetCplParserFactory()), ScriptType.GetCplParserFactory()); List<CplConditionEditor> lstConditionEditors = new List<CplConditionEditor>(); lstConditionEditors.Add(new CplPluginConditionEditor(p_lstModFiles)); CPLEditorVM vmlCplEditor = new CPLEditorVM(vmlCplTextEditor, lstConditionEditors, ConditionOperator.And | ConditionOperator.Or); FO3CplConverter cvtConverter = new FO3CplConverter(ScriptType.GetCplParserFactory()); ConditionEditorVM vmlConditionEditor = new ConditionEditorVM(vmlCplEditor, cvtConverter, null); ConditionalTypePatternEditorVM vmlPatternEditor = new ConditionalTypePatternEditorVM(vmlConditionEditor, null); ConditionalTypeEditorVM vmlTypeEditor = new ConditionalTypeEditorVM(vmlPatternEditor, cvtConverter, null); OptionTypeResolverEditorVM vmlTypeResolverEditor = new OptionTypeResolverEditorVM(vmlTypeEditor, p_optOption); OptionEditorVM vmlOptionEditor = new OptionEditorVM(vmlOptionInfo, vmlFileList, vmlTypeResolverEditor); return new OptionEditor(vmlOptionEditor); }
/// <summary> /// A simple constructor that initializes the view with its dependencies. /// </summary> /// <param name="p_vmlViewModel">The view model that provides the data and operations for this view.</param> public ConditionalTypeEditor(ConditionalTypeEditorVM p_vmlViewModel) : this() { ViewModel = p_vmlViewModel; }
/// <summary> /// A simple constructor that initializes the view with its dependencies. /// </summary> /// <param name="p_vmlViewModel">The view model that provides the data and operations for this view.</param> public ConditionalTypeEditor(ConditionalTypeEditorVM p_vmlViewModel) : this() { ViewModel = p_vmlViewModel; }