public ParameterDicConverterBase(Func <object, object[], ParameterDic> convertFunc, Func <ParameterDic, object[], object> convertBackFunc, IParameterDicConverter baseConverter = null) { _convertFunc = convertFunc; _convertBackFunc = convertBackFunc; _baseConverter = baseConverter; }
public static IParameterDicConverter FromParameterDic(ParameterDic pd, IParameterDicConverter baseConverter = null) { return(new ParameterDicConverterBase((p, p2) => { return pd; }, null, baseConverter)); }
protected ScriptCommandBinding(RoutedUICommand uiCommandKey, IParameterDicConverter parameterDicConverter = null, ScriptBindingScope scope = ScriptBindingScope.Application) { Scope = scope; UICommandKey = uiCommandKey; ParameterDicConverter = parameterDicConverter == null ? ParameterDicConverters.ConvertParameterOnly : parameterDicConverter; }
public ScriptCommandBinding(RoutedUICommand uICommandKey, IScriptCommand scriptCommand, IParameterDicConverter parameterDicConverter = null, ScriptBindingScope scope = ScriptBindingScope.Application) { Scope = scope; ScriptCommand = scriptCommand; UICommandKey = uICommandKey == null ? ApplicationCommands.NotACommand : uICommandKey; ParameterDicConverter = parameterDicConverter == null ? ParameterDicConverters.ConvertParameterOnly : parameterDicConverter; }
public ScriptRelayCommand(IScriptCommand command, IParameterDicConverter converter, IScriptRunner scriptRunner) : base( pm => { scriptRunner.RunAsync(converter.Convert(pm), command); }, pm => command.CanExecute(converter.Convert(pm))) { }
public CommandViewModel(ICommandModel commandModel, IParameterDicConverter parameterDicConverter, ICommandViewModel parentCommandViewModel = null) { CommandModel = commandModel; _parentCommandViewModel = parentCommandViewModel; _parameterDicConverter = parameterDicConverter; if (CommandModel != null) { if (CommandModel is IRoutedCommandModel && (CommandModel as IRoutedCommandModel).RoutedCommand != null) { CommandBinding = ScriptCommandBinding.ForRoutedUICommand((CommandModel as IRoutedCommandModel).RoutedCommand); } else { CommandBinding = ScriptCommandBinding.FromScriptCommand( ApplicationCommands.NotACommand, commandModel, cm => cm.Command, parameterDicConverter, /*ParameterDicConverters.ConvertUIParameter, */ ScriptBindingScope.Local); } } CommandModel.PropertyChanged += (o, e) => { switch (e.PropertyName) { case "IsChecked": case "Symbol": case "HeaderIconExtractor": RefreshIcon(); break; case "SubCommands": SubCommands.LoadAsync(UpdateMode.Replace, true); RefreshIcon(); break; case "IsEnabled": case "IsVisibleOnMenu": case "IsVisibleOnToolbar": NotifyOfPropertyChange(() => IsVisibleOnMenu); NotifyOfPropertyChange(() => IsVisibleOnToolbar); break; } }; RefreshIcon(); if (commandModel is IDirectoryCommandModel) { IDirectoryCommandModel directoryModel = CommandModel as IDirectoryCommandModel; SubCommands = new EntriesHelper <ICommandViewModel>( (cts) => Task.Run <IEnumerable <ICommandViewModel> >( () => directoryModel.SubCommands.Select(c => (ICommandViewModel) new CommandViewModel(c, parameterDicConverter, this)))); SubCommands.LoadAsync(UpdateMode.Replace, false); } }
/// <summary> /// Create and initialize (get&setupScriptCommands()) a ScriptCommandDictionary and return. /// </summary> /// <returns></returns> private dynamic setupCommandDictionary(IParameterDicConverter parameterDicConverter) { DynamicRelayCommandDictionary dic = new DynamicRelayCommandDictionary() { ParameterDicConverter = parameterDicConverter }; foreach (var cmd in getScriptCommands()) { dic[cmd] = NullScriptCommand.Instance; } setupScriptCommands(dic); return(dic); }
public ToolbarCommandsHelper( IEventAggregator events, IParameterDicConverter parameterDicConverter, Func <DirectoryChangedEvent, IEntryModel[]> whenDirectoryChanged = null, Func <SelectionChangedEvent, IEntryModel[]> whenSelectionChanged = null, IProfile[] rootProfiles = null, params ICommandProvider[] extraCommandProviders) { _parameterDicConverter = parameterDicConverter; _extraCommandProviders = extraCommandProviders; _whenDirectoryChanged = whenDirectoryChanged; _whenSelectionChanged = whenSelectionChanged; if (events != null) { if (_whenDirectoryChanged != null || _whenSelectionChanged != null) { events.Subscribe(this); } } _rootProfiles = rootProfiles; CommandModels = new EntriesHelper <ICommandViewModel>(loadCommandsTask); }
public ICommandScriptCommand(ICommand command, IParameterDicConverter parameterDicConverter) : base(command.ToString()) { _command = command; _parameterDicConverter = parameterDicConverter; }
public static ParameterDic ConvertAndMerge(this IParameterDicConverter converter, ParameterDic pd, object parameter = null, params object[] additionalParameters) { var convertedPd = converter.Convert(parameter, additionalParameters); return(ParameterDic.Combine(convertedPd, pd)); }
public ScriptCommandBinding(RoutedUICommand uICommandKey, Func <object, bool> canExecuteFunc, Action <object> executeFunc, IParameterDicConverter parameterDicConverter = null, ScriptBindingScope scope = ScriptBindingScope.Application) : this(uICommandKey, new SimpleCommand() { CanExecuteDelegate = (p) => canExecuteFunc == null || canExecuteFunc(p), ExecuteDelegate = executeFunc, UICommand = uICommandKey }, parameterDicConverter, scope) { }
public static IScriptCommandBinding FromScriptCommand <T>(RoutedUICommand uiCommandKey, T targetObject, Func <T, IScriptCommand> scriptCommandFunc, IParameterDicConverter parameterDicConverter = null, ScriptBindingScope scope = ScriptBindingScope.Application) { return(new ScriptCommandBinding <T>(uiCommandKey, targetObject, scriptCommandFunc, parameterDicConverter) { Scope = scope }); }