public CPLEditorVM(CPLTextEditorVM p_temTextEditorVM, List <CplConditionEditor> p_lstCplConditionEditors, ConditionOperator p_copAllowedOperations) { TextEditorVM = p_temTextEditorVM; ConditionEditors = p_lstCplConditionEditors; IsAndOperationAllowed = (p_copAllowedOperations & ConditionOperator.And) > 0; IsOrOperationAllowed = (p_copAllowedOperations & ConditionOperator.Or) > 0; PluginStates = Enum.GetValues(typeof(PluginState)); }
public CPLEditorVM(CPLTextEditorVM p_temTextEditorVM, List<CplConditionEditor> p_lstCplConditionEditors, ConditionOperator p_copAllowedOperations) { TextEditorVM = p_temTextEditorVM; ConditionEditors = p_lstCplConditionEditors; IsAndOperationAllowed = (p_copAllowedOperations & ConditionOperator.And) > 0; IsOrOperationAllowed = (p_copAllowedOperations & ConditionOperator.Or) > 0; PluginStates = Enum.GetValues(typeof(PluginState)); }
/// <summary> /// Creates a <see cref="ConditionEditorVM"/>. /// </summary> /// <param name="p_lstModFiles">The list of files in the script's mod.</param> /// <param name="p_cvtConverter">A converter to use to convert CPL.</param> /// <returns>A <see cref="ConditionEditorVM"/>.</returns> protected virtual ConditionEditorVM CreateConditionEditorVM(IList<VirtualFileSystemItem> p_lstModFiles, CPLConverter p_cvtConverter) { CPLTextEditorVM vmlCplTextEditor = new CPLTextEditorVM(new FO3CplHighlightingStrategy(ScriptType.GetCplParserFactory()), ScriptType.GetCplParserFactory()); List<CplConditionEditor> lstConditionEditors = new List<CplConditionEditor>(); lstConditionEditors.Add(new CplPluginConditionEditor(p_lstModFiles)); lstConditionEditors.Add(new CplFlagConditionEditor()); CPLEditorVM vmlCplEditor = new CPLEditorVM(vmlCplTextEditor, lstConditionEditors, ConditionOperator.And | ConditionOperator.Or); ConditionEditorVM vmlConditionEditor = new ConditionEditorVM(vmlCplEditor, p_cvtConverter, null); return vmlConditionEditor; }
/// <summary> /// Creates a <see cref="CPLEditorVM"/>. /// </summary> /// <param name="p_lstModFiles">The list of files in the script's mod.</param> /// <returns>A <see cref="CPLEditorVM"/>.</returns> protected virtual CPLEditorVM CreateCPLEditorVM(IList<VirtualFileSystemItem> p_lstModFiles) { CPLTextEditorVM vmlCplTextEditor = new CPLTextEditorVM(new CplHighlightingStrategy(ScriptType.GetCplParserFactory()), ScriptType.GetCplParserFactory()); List<KeyValuePair<string, string>> lstVersionNames = new List<KeyValuePair<string, string>>(); lstVersionNames.Add(new KeyValuePair<string, string>("Game Version", "gameVersion")); lstVersionNames.Add(new KeyValuePair<string, string>("Mod Manager Version", "managerVersion")); List<CplConditionEditor> lstConditionEditors = new List<CplConditionEditor>(); lstConditionEditors.Add(new CplPluginConditionEditor(p_lstModFiles)); lstConditionEditors.Add(new CplFlagConditionEditor()); lstConditionEditors.Add(new CplVersionConditionEditor(lstVersionNames)); CPLEditorVM vmlCplEditor = new CPLEditorVM(vmlCplTextEditor, lstConditionEditors, ConditionOperator.And | ConditionOperator.Or); return vmlCplEditor; }
/// <summary> /// Gets the editor to use to edit the <see cref="XmlScript"/> prerequisites. /// </summary> /// <param name="p_xscScript">The <see cref="XmlScript"/> whose prerequisites are to be edited.</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 <see cref="XmlScript"/> prerequisites. <c>null</c> is returned if the /// current <see cref="XmlScript"/> does not support editing the prerequisites.</returns> public virtual NodeEditor GetPrerequisitesEditor(Nexus.Client.ModManagement.Scripting.XmlScript.XmlScript p_xscScript, IList<VirtualFileSystemItem> p_lstModFiles) { CPLTextEditorVM vmlCplTextEditor = new CPLTextEditorVM(new FO3CplHighlightingStrategy(ScriptType.GetCplParserFactory()), ScriptType.GetCplParserFactory()); List<KeyValuePair<string, string>> lstVersionNames = new List<KeyValuePair<string, string>>(); lstVersionNames.Add(new KeyValuePair<string, string>("FOSE Version", "foseVersion")); lstVersionNames.Add(new KeyValuePair<string, string>("Game Version", "gameVersion")); lstVersionNames.Add(new KeyValuePair<string, string>("Mod Manager Version", "managerVersion")); List<CplConditionEditor> lstConditionEditors = new List<CplConditionEditor>(); lstConditionEditors.Add(new CplPluginConditionEditor(p_lstModFiles)); lstConditionEditors.Add(new CplVersionConditionEditor(lstVersionNames)); CPLEditorVM vmlCplEditor = new CPLEditorVM(vmlCplTextEditor, lstConditionEditors, ConditionOperator.And); FO3CplConverter cvtConverter = new FO3CplConverter(ScriptType.GetCplParserFactory()); PrerequisitesEditorVM vmlPrerequisitesEditor = new PrerequisitesEditorVM(vmlCplEditor, cvtConverter, p_xscScript); return new ConditionEditor(vmlPrerequisitesEditor); }
/// <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); }