Esempio n. 1
0
 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;
 }
Esempio n. 5
0
 public ScriptRelayCommand(IScriptCommand command, IParameterDicConverter converter, IScriptRunner scriptRunner)
     : base(
         pm =>
 {
     scriptRunner.RunAsync(converter.Convert(pm), command);
 },
         pm => command.CanExecute(converter.Convert(pm)))
 {
 }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        /// <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;
 }
Esempio n. 10
0
        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
     });
 }