Exemplo n.º 1
0
 void OnRunningQueriesChanged(Object sender, EventArgs e)
 {
     if (_awaiting)
     {
         _currentExecution = sender as QueryResultViewModel;
     }
     else if (_currentExecution == sender)
     {
         _currentExecution = null;
     }
 }
Exemplo n.º 2
0
        public MainViewModel(IApplication container)
        {
            var provider = container.Get <IApiProvider>();

            _container = container;
            _kernel    = container.Get <Kernel>();

            _variables      = new ObservableCollection <VariableViewModel>();
            _functions      = new ObservableCollection <HelpViewModel>();
            _availableItems = new ObservableCollection <AutocompleteItem>();
            _notifications  = new NotificationsViewModel();

            _kernel.Load(provider);
            _kernel.Context.LastPlotChanged      += PlotCreated;
            _kernel.Context.VariableChanged      += VariableChanged;
            _kernel.Context.VariableCreated      += VariableCreated;
            _kernel.Context.VariableRemoved      += VariableRemoved;
            _kernel.Context.NotificationReceived += _notifications.Received;
            _kernel.Context.UserInputRequired    += UserInput;

            FunctionFilter = String.Empty;
            VariableFilter = String.Empty;

            FillLists();

            _openDialog = new RelayCommand(x =>
            {
                var dialog = (Dialog)x;
                Container.Get <IDialogManager>().Open(dialog);
            });

            _runQuery = new RelayCommand(x =>
            {
                var cqr      = x as ConsoleQueryReference;
                var qrvm     = new QueryResultViewModel(cqr, _kernel.Context);
                var query    = cqr.OriginalQuery;
                var newQuery = Container.Get <ICommandFactory>().TryCommand(query);

                if (newQuery != null)
                {
                    query = newQuery;
                }

                var task = _kernel.RunAsync(qrvm, query);
            });
        }