コード例 #1
0
        public PrintJobViewModel(ISettingsManager settingsManager, IJobInfoQueue jobInfoQueue, ITranslator translator, DragAndDropEventHandler dragAndDrop, IInteractionInvoker interactionInvoker, IUserGuideHelper userGuideHelper, ApplicationNameProvider applicationNameProvider)
        {
            Title = applicationNameProvider.ApplicationName;

            _currentThreadDispatcher = Dispatcher.CurrentDispatcher;
            _translator         = translator;
            _dragAndDrop        = dragAndDrop;
            _interactionInvoker = interactionInvoker;
            _userGuideHelper    = userGuideHelper;
            _settingsManager    = settingsManager;
            _jobInfoQueue       = jobInfoQueue;

            _jobInfoQueue.OnNewJobInfo += OnNewJobInfo;

            _settingsProvider = settingsManager.GetSettingsProvider();

            SaveCommand            = new DelegateCommand(ExecuteSave);
            EmailCommand           = new DelegateCommand(ExecuteMail);
            ManagePrintJobsCommand = new DelegateCommand(ExecuteManagePrintJobs);
            ShowSettingsCommand    = new DelegateCommand(ExecuteShowSettings);
            WindowClosingCommand   = new DelegateCommand(OnWindowClosing);
            DragEnterCommand       = new DelegateCommand <DragEventArgs>(OnDragEnter);
            DropCommand            = new DelegateCommand <DragEventArgs>(OnDrop);
            KeyDownCommand         = new DelegateCommand <KeyEventArgs>(OnKeyDown);
        }
コード例 #2
0
        public ManagePrintJobsViewModel(IJobInfoQueue jobInfoQueue, DragAndDropEventHandler dragAndDrop, IJobInfoManager jobInfoManager, IDispatcher dispatcher, ITranslationUpdater translationUpdater, ApplicationNameProvider applicationNameProvider)
            : base(translationUpdater)
        {
            _jobInfoQueue               = jobInfoQueue;
            _dragAndDrop                = dragAndDrop;
            _jobInfoManager             = jobInfoManager;
            _dispatcher                 = dispatcher;
            _applicationNameProvider    = applicationNameProvider;
            _jobInfoQueue.OnNewJobInfo += OnNewJobInfo;

            ListSelectionChangedCommand = new DelegateCommand(ListSelectionChanged);
            DeleteJobCommand            = new DelegateCommand(ExecuteDeleteJob);
            MergeJobsCommand            = new DelegateCommand(ExecuteMergeJobs, CanExecuteMergeJobs);
            MergeAllJobsCommand         = new DelegateCommand(ExecuteMergeAllJobs, CanExecuteMergeAllJobs);
            DoNothingCommand            = new DelegateCommand(o => { }, CanExecuteMergeAllJobs);
            WindowClosedCommand         = new DelegateCommand(OnWindowClosed);
            WindowActivatedCommand      = new DelegateCommand(OnWindowActivated);
            DragEnterCommand            = new DelegateCommand <DragEventArgs>(OnDragEnter);
            DropCommand    = new DelegateCommand <DragEventArgs>(OnDrop);
            KeyDownCommand = new DelegateCommand <KeyEventArgs>(OnKeyDown);
            SortCommand    = new DelegateCommand(o => OnSortCommand(MergeSortingEnum.AlphabeticalDescending));
            SetupSortCommands();

            _synchronizedJobs       = new Helper.SynchronizedCollection <JobInfo>(_jobInfoQueue.JobInfos);
            _jobInfos               = _synchronizedJobs.ObservableCollection;
            JobInfos                = new CollectionView(_jobInfos);
            JobListSelectionChanged = new DelegateCommand(ListItemChange);
        }
コード例 #3
0
        public ManagePrintJobsViewModel(IJobInfoQueue jobInfoQueue, DragAndDropEventHandler dragAndDrop, IJobInfoManager jobInfoManager, IDispatcher dispatcher, ManagePrintJobsWindowTranslation translation)
        {
            _jobInfoQueue               = jobInfoQueue;
            _dragAndDrop                = dragAndDrop;
            _jobInfoManager             = jobInfoManager;
            _dispatcher                 = dispatcher;
            _translation                = translation;
            _jobInfoQueue.OnNewJobInfo += OnNewJobInfo;

            ListSelectionChangedCommand = new DelegateCommand(ListSelectionChanged);
            DeleteJobCommand            = new DelegateCommand(ExecuteDeleteJob, CanExecuteDeleteJob);
            MergeJobsCommand            = new DelegateCommand(ExecuteMergeJobs, CanExecuteMergeJobs);
            MergeAllJobsCommand         = new DelegateCommand(ExecuteMergeAllJobs, CanExecuteMergeAllJobs);
            MoveUpCommand          = new DelegateCommand(ExecuteMoveUp, CanExecuteMoveUp);
            MoveDownCommand        = new DelegateCommand(ExecuteMoveDown, CanExecuteMoveDown);
            WindowClosedCommand    = new DelegateCommand(OnWindowClosed);
            WindowActivatedCommand = new DelegateCommand(OnWindowActivated);
            DragEnterCommand       = new DelegateCommand <DragEventArgs>(OnDragEnter);
            DropCommand            = new DelegateCommand <DragEventArgs>(OnDrop);
            KeyDownCommand         = new DelegateCommand <KeyEventArgs>(OnKeyDown);

            _jobInfos = new ObservableCollection <JobInfo>();
            JobInfos  = new CollectionView(_jobInfos);
            JobListSelectionChanged = new DelegateCommand(ListItemCHange);
            foreach (var jobInfo in _jobInfoQueue.JobInfos)
            {
                AddJobInfo(jobInfo);
            }
        }
コード例 #4
0
        public ManagePrintJobsViewModel(IJobInfoQueue jobInfoQueue, DragAndDropEventHandler dragAndDrop, IJobInfoManager jobInfoManager, IDispatcher dispatcher, ITranslationUpdater translationUpdater)
        {
            _jobInfoQueue               = jobInfoQueue;
            _dragAndDrop                = dragAndDrop;
            _jobInfoManager             = jobInfoManager;
            _dispatcher                 = dispatcher;
            _jobInfoQueue.OnNewJobInfo += OnNewJobInfo;

            ListSelectionChangedCommand = new DelegateCommand(ListSelectionChanged);
            DeleteJobCommand            = new DelegateCommand(ExecuteDeleteJob);
            MergeJobsCommand            = new DelegateCommand(ExecuteMergeJobs, CanExecuteMergeJobs);
            MergeAllJobsCommand         = new DelegateCommand(ExecuteMergeAllJobs, CanExecuteMergeAllJobs);
            WindowClosedCommand         = new DelegateCommand(OnWindowClosed);
            WindowActivatedCommand      = new DelegateCommand(OnWindowActivated);
            DragEnterCommand            = new DelegateCommand <DragEventArgs>(OnDragEnter);
            DropCommand    = new DelegateCommand <DragEventArgs>(OnDrop);
            KeyDownCommand = new DelegateCommand <KeyEventArgs>(OnKeyDown);

            var synchronizedJobs = new Helper.SynchronizedCollection <JobInfo>(_jobInfoQueue.JobInfos);

            _jobInfos = synchronizedJobs.ObservableCollection;
            JobInfos  = new CollectionView(_jobInfos);
            JobListSelectionChanged = new DelegateCommand(ListItemChange);

            translationUpdater.RegisterAndSetTranslation(tf => Translation = tf.UpdateOrCreateTranslation(Translation));
        }
コード例 #5
0
 public void Setup()
 {
     _wasCalled      = false;
     _queueStub      = Substitute.For <IJobInfoQueue>();
     _dragDrop       = new DragAndDropEventHandler(Substitute.For <IFileConversionAssistant>());
     _jobInfoManager = Substitute.For <IJobInfoManager>();
     _dispatcher     = new InvokeImmediatelyDispatcher();
     _jobInfoStub    = new JobInfo();
 }
コード例 #6
0
        public void Setup()
        {
            _jobList        = new List <JobInfo>();
            _jobInfoQueue   = MockRepository.GenerateStub <IJobInfoQueue>();
            _dragAndDrop    = new DragAndDropEventHandler(MockRepository.GenerateStub <IFileConversionHandler>());
            _jobInfoManager = MockRepository.GenerateStub <IJobInfoManager>();
            _jobInfoQueue.Stub(x => x.JobInfos).Return(_jobList);
            _eventWasRaised = false;

            _model = new ManagePrintJobsViewModel(_jobInfoQueue, _dragAndDrop, _jobInfoManager);
        }
コード例 #7
0
        public void Setup()
        {
            _jobList = new List <JobInfo> {
                new JobInfo(), new JobInfo(), new JobInfo()
            };
            _jobInfoQueue   = Substitute.For <IJobInfoQueue>();
            _dragAndDrop    = new DragAndDropEventHandler(Substitute.For <IFileConversionAssistant>());
            _jobInfoManager = Substitute.For <IJobInfoManager>();
            _dispatcher     = new InvokeImmediatelyDispatcher();
            _jobInfoQueue.JobInfos.Returns(_jobList);
            _eventWasRaised = false;
            _jobInfoStub    = new JobInfo();

            _model = new ManagePrintJobsViewModel(_jobInfoQueue, _dragAndDrop, _jobInfoManager, _dispatcher, new DesignTimeTranslationUpdater(), new DesignTimeApplicationNameProvider());
        }
コード例 #8
0
        public void RemoveListener(View targetView, DragAndDropEventHandler callback)
        {
            if (!targetEventDictionary.ContainsKey(targetView))
            {
                throw new InvalidOperationException("Fail to RemoveListener");
            }

            InternalDragAndDropEventHandler cb = targetEventDictionary[targetView];

            targetEventDictionary.Remove(targetView);
            if (!Interop.DragAndDrop.RemoveListener(SwigCPtr, View.getCPtr(targetView),
                                                    new global::System.Runtime.InteropServices.HandleRef(this, Marshal.GetFunctionPointerForDelegate <Delegate>(cb))))
            {
                throw new InvalidOperationException("Fail to RemoveListener");
            }
        }
コード例 #9
0
        public void AddListener(View targetView, DragAndDropEventHandler callback)
        {
            InternalDragAndDropEventHandler cb = (dragEvent) =>
            {
                DragType              type = (DragType)Interop.DragAndDrop.GetAction(dragEvent);
                DragEvent             ev   = new DragEvent();
                global::System.IntPtr cPtr = Interop.DragAndDrop.GetPosition(dragEvent);
                ev.Position = (cPtr == global::System.IntPtr.Zero) ? null : new Position(cPtr, false);

                if (type == DragType.Enter)
                {
                    ev.DragType = type;
                    callback(targetView, ev);
                }
                else if (type == DragType.Leave)
                {
                    ev.DragType = type;
                    callback(targetView, ev);
                }
                else if (type == DragType.Move)
                {
                    ev.DragType = type;
                    callback(targetView, ev);
                }
                else if (type == DragType.Drop)
                {
                    ev.DragType = type;
                    ev.MimeType = Interop.DragAndDrop.GetMimeType(dragEvent);
                    ev.Data     = Interop.DragAndDrop.GetData(dragEvent);
                    callback(targetView, ev);
                }
            };

            targetEventDictionary.Add(targetView, cb);

            if (!Interop.DragAndDrop.AddListener(SwigCPtr, View.getCPtr(targetView),
                                                 new global::System.Runtime.InteropServices.HandleRef(this, Marshal.GetFunctionPointerForDelegate <Delegate>(cb))))
            {
                throw new InvalidOperationException("Fail to AddListener");
            }
        }
コード例 #10
0
        public MainShellViewModel(DragAndDropEventHandler dragAndDrop, ITranslationUpdater translation,
                                  ApplicationNameProvider applicationName, IInteractionRequest interactionRequest,
                                  IEventAggregator aggregator, ICommandLocator commandLocator, IDispatcher dispatcher, IRegionManager regionManager,
                                  IWelcomeSettingsHelper welcomeSettingsHelper, IGpoSettings gpoSettings, IUpdateAssistant updateAssistant, IEventAggregator eventAggregator)
            : base(translation)
        {
            _aggregator        = aggregator;
            ApplicationName    = applicationName;
            InteractionRequest = interactionRequest;

            _dispatcher            = dispatcher;
            _regionManager         = regionManager;
            _welcomeSettingsHelper = welcomeSettingsHelper;
            ShowUpdate             = updateAssistant.IsUpdateAvailable();
            GpoSettings            = gpoSettings;

            NavigateCommand = commandLocator?.CreateMacroCommand()
                              .AddCommand <EvaluateSettingsAndNotifyUserCommand>()
                              .AddCommand <SaveChangedSettingsCommand>()
                              .AddCommand <NavigateToMainTabCommand>()
                              .Build();

            CloseCommand = commandLocator?.CreateMacroCommand()
                           .AddCommand <EvaluateSettingsAndNotifyUserCommand>()
                           .AddCommand <SaveChangedSettingsCommand>()
                           .Build();

            DragEnterCommand = new DelegateCommand <DragEventArgs>(dragAndDrop.HandleDragEnter);
            DragDropCommand  = new DelegateCommand <DragEventArgs>(dragAndDrop.HandleDropEvent);

            aggregator.GetEvent <NavigateToHomeEvent>().Subscribe(OnSettingsChanged);
            aggregator.GetEvent <NavigateMainTabEvent>().Subscribe(OnMainShellNavigated);
            aggregator.GetEvent <ForceMainShellNavigation>().Subscribe(OnForcedNavigation);
            aggregator.GetEvent <CloseMainWindowEvent>().Subscribe(OnCloseMainWindow);

            ShowUpdate = updateAssistant.ShowUpdate;
            eventAggregator.GetEvent <SetShowUpdateEvent>().Subscribe(value =>
            {
                ShowUpdate = updateAssistant.ShowUpdate;
            }, true);
        }
コード例 #11
0
        public MainWindowViewModel(ISettingsManager settingsManager, IInteractionInvoker interactionInvoker, IUserGuideHelper userGuideHelper,
                                   IVersionHelper versionHelper, DragAndDropEventHandler dragAndDrop, WelcomeCommand welcomeCommand, ApplicationNameProvider applicationNameProvider)
        {
            _settingsManager         = settingsManager;
            _interactionInvoker      = interactionInvoker;
            _userGuideHelper         = userGuideHelper;
            _versionHelper           = versionHelper;
            _applicationNameProvider = applicationNameProvider;

            ApplicationSettingsCommand = new DelegateCommand(ExecuteApplicationSettingsCommand);
            ProfileSettingsCommand     = new DelegateCommand(ExecuteProfileSettings);
            WelcomeCommand             = welcomeCommand;
            AboutWindowCommand         = new DelegateCommand(ExecuteAboutWindow);
            HelpCommand = new DelegateCommand <KeyEventArgs>(ExecuteHelpCommand);

            DragEnterCommand = new DelegateCommand <DragEventArgs>(dragAndDrop.HandleDragEnter);
            DragDropCommand  = new DelegateCommand <DragEventArgs>(dragAndDrop.HandleDropEvent);

            _settingsProvider          = _settingsManager.GetSettingsProvider();
            ApplicationSettingsEnabled = _settingsProvider.GpoSettings?.DisableApplicationSettings == false;
        }
コード例 #12
0
        public PrintJobShellViewModel(ApplicationNameProvider applicationNameProvider, IInteractionRequest interactionRequest, ITranslationUpdater updater, IEventAggregator eventAggregator, DragAndDropEventHandler dragAndDrop) : base(updater)
        {
            ApplicationName    = applicationNameProvider;
            InteractionRequest = interactionRequest;

            if (eventAggregator != null)
            {
                eventAggregator.GetEvent <ShowLockLayerEvent>().Subscribe(() => ShowLockLayer = true);
                eventAggregator.GetEvent <HideLockLayerEvent>().Subscribe(() => ShowLockLayer = false);
            }

            DragEnterCommand = new DelegateCommand <DragEventArgs>(dragAndDrop.HandleDragEnter);
            DragDropCommand  = new DelegateCommand <DragEventArgs>(dragAndDrop.HandleDropEvent);
        }
コード例 #13
0
 public void Setup()
 {
     _queueStub      = MockRepository.GenerateStub <IJobInfoQueue>();
     _dragDrop       = new DragAndDropEventHandler(MockRepository.GenerateStub <IFileConversionHandler>());
     _jobInfoManager = MockRepository.GenerateStub <IJobInfoManager>();
 }