public MainWindowControl(MonitorWindow win) { this.win = win; this.win.InitializeComponent(); init = new Init(); load(); }
//构造函数 public WrapPanelControl(MonitorWindow win, Dictionary<string, UsbInfo> dic, double width, double height) { this.win = win; this.dic = dic; this.width = width; this.height = height; control = new ControlFactory(win); }
public ApplicationActions(IMonitor monitor, MonitorWindow monitorWindow, IMonitorViewModelFactory monitorViewModelFactory, SettingsWindow settingsWindow, SettingsViewModel settingsViewModel) { _monitor = monitor; _monitorWindow = monitorWindow; _monitorWindow.Deactivated += MonitorWindowOnDeactivated; _monitorViewModelFactory = monitorViewModelFactory; _settingsWindow = settingsWindow; _settingsViewModel = settingsViewModel; _settingsWindow.DataContext = _settingsViewModel; _monitorViewModel = new Lazy <MonitorWindowViewModel>(InitializeMonitorViewModel); }
public void ShowWindow() { MonitorWindow window; var t = new Thread(() => { var gitPullRequests = new ConcurrentDictionary <int, IPullRequest>(); for (int i = 0; i < 5; i++) { var pullRequest = Substitute.For <IPullRequest>(); pullRequest.Id.Returns(i); pullRequest.Title.Returns("Test pull request"); pullRequest.AuthorDisplayName.Returns("Alan Develo"); var repo = Substitute.For <ITfGitRepository>(); repo.Name.Returns("test-repo.git"); pullRequest.Repository.Returns(repo); gitPullRequests.AddOrUpdate(i, pullRequest, (j, request) => request); } var project = Substitute.For <ITfProject>(); project.Unapproved.Returns(gitPullRequests); project.Approved.Returns(gitPullRequests); var singleProjectViewModel = new SingleProjectViewModel(new PullRequestListViewModel(), new PullRequestListViewModel()); var monitor = Substitute.For <IMonitor>(); monitor.Projects.Returns(new[] { project }); monitor.Status.Returns(MonitorStatus.UpdateSuccessful); var monitorViewModel = new MonitorWindowViewModel(monitor, Substitute.For <INoProjectsViewModel>(), singleProjectViewModel, new FirstUpdateViewModel(), new CouldNotReachServerViewModel( Substitute.For <IApplicationActions>(), Substitute.For <IAppSettings>()), new UnrecognisedErrorViewModel()); monitorViewModel.Update(); window = new MonitorWindow { WindowStyle = WindowStyle.SingleBorderWindow, DataContext = monitorViewModel }; window.Closed += (sender, args) => System.Windows.Threading.Dispatcher.ExitAllFrames(); window.Show(); System.Windows.Threading.Dispatcher.Run(); }); t.SetApartmentState(ApartmentState.STA); t.Start(); t.Join(); }
public MainWindow() { InitializeComponent(); SetupLogging(); UpdateAppStates(AppState.APP_STATE_UNINITIALIZED); UpdateStatus(); SetTitle(); UpdateProfiling(); SetLoggingLevel(Settings.Level); profilerWindow = new ProfilerWindow(); profilerWindow.OnProfilerClosed += ProfilerWindow_OnClosed; monitorWindow = new MonitorWindow(); monitorWindow.OnMonitorClosed += PortMonitorWindow_OnClosed; PortMonitor.SetMonitor(monitorWindow); commTester = new CommTester(); }
/// <summary> /// Open Monitor window. /// </summary> private void OpenExecuted(object target, ExecutedRoutedEventArgs e) { try { var monitorWindow = this.OwnedWindows.OfType <MonitorWindow>().FirstOrDefault(); if (monitorWindow != null) { // Activate Monitor window. WindowSupplement.ActivateWindow(monitorWindow); return; } // Open Monitor Window. monitorWindow = new MonitorWindow { Owner = this }; monitorWindow.Show(); } catch (Exception ex) { MessageBox.Show(ex.Message, ProductInfo.Title, MessageBoxButton.OK, MessageBoxImage.Error); } }
public ButtonControl(MonitorWindow win) { this.win = win; //colorNoFocus = (Color)ColorConverter.ConvertFromString("#C2C2C2"); }
public ControlFactory(MonitorWindow win) { this.win = win; }
public static void StartSession(IReadOnlyList <SessionConfig.Experiment> experimentParts, IDictionary <string, DeviceParams> devicePart, bool monitor = false, ISessionListener sessionListener = null) { /* Constructs experiment instances. */ var experiments = new IExperiment[experimentParts.Count]; var formattedSessionDescriptors = new string[experimentParts.Count]; for (var i = 0; i < experimentParts.Count; i++) { var expConf = experimentParts[i]; if (!App.Instance.Registries.Registry <PluginExperiment>().LookUp(expConf.Params.Id, out var pluginExperiment)) { throw new ArgumentException($"Cannot find specific experiment by id: {expConf.Params.Id}"); } if (!TryInitiateExperiment(pluginExperiment, pluginExperiment.DeserializeParams(expConf.Params.Params), out var experiment)) { return; } experiments[i] = experiment; formattedSessionDescriptors[i] = expConf.GetFormattedSessionDescriptor(); } /* Parse consumer configurations. */ var deviceConsumerLists = new Dictionary <DeviceType, IList <Tuple <PluginStreamConsumer, IReadonlyContext> > >(); foreach (var deviceType in App.Instance.Registries.Registry <PluginDeviceType>().Registered) { if (!devicePart.TryGetValue(deviceType.DeviceType.Name, out var deviceParams) || deviceParams.Device.Id == null) { continue; } var list = new List <Tuple <PluginStreamConsumer, IReadonlyContext> >(); deviceConsumerLists[deviceType.DeviceType] = list; foreach (var consumerConf in deviceParams.Consumers) { if (!App.Instance.Registries.Registry <PluginStreamConsumer>().LookUp(consumerConf.Id, out var pluginStreamConsumer)) { throw new ArgumentException($"Cannot find specific consumer by id: {consumerConf.Params}"); } list.Add(new Tuple <PluginStreamConsumer, IReadonlyContext>(pluginStreamConsumer, pluginStreamConsumer.DeserializeParams(consumerConf.Params))); } } /* IMPORTANT: ALL EXPERIMENT RELATED CONFIG SHOULD BE CHECKED BEFORE STEAMERS WERE INITIALIZED */ var monitorWindow = monitor ? MonitorWindow.Show() : null; var sessions = new Session[experimentParts.Count]; var baseClock = Clock.SystemMillisClock; var streamers = CreateStreamerCollection(devicePart, baseClock, out var deviceStreamers); using (var disposablePool = new DisposablePool()) { try { streamers.Start(); monitorWindow?.Bind(streamers); for (var i = 0; i < experimentParts.Count; i++) { var experimentPart = experimentParts[i]; var experiment = experiments[i]; var sessionName = formattedSessionDescriptors[i]; var session = sessions[i] = new Session(App.Instance.Dispatcher, experimentPart.Subject, sessionName, baseClock, experiment, streamers, App.DataDir); new SessionConfig { ExperimentPart = experimentPart, DevicePart = devicePart } .JsonSerializeToFile(session.GetDataFileName(SessionConfig.FileSuffix), JsonUtils.PrettyFormat, Encoding.UTF8); var writerBaseTime = session.CreateTimestamp; if (ExperimentProperties.RecordMarkers.Get(experiment.Metadata) && streamers.TryFindFirst <MarkerStreamer>(out var markerStreamer)) { var markerFileWriter = new MarkerFileWriter(session.GetDataFileName(MarkerFileWriter.FileSuffix), writerBaseTime); disposablePool.Add(markerFileWriter); markerStreamer.Attach(markerFileWriter); disposablePool.Add(new DelegatedDisposable(() => markerStreamer.Detach(markerFileWriter))); } foreach (var entry in deviceConsumerLists) { if (deviceStreamers.TryGetValue(entry.Key, out var deviceStreamer)) { var deviceConsumerList = entry.Value; var indexed = deviceConsumerList.Count > 1; byte num = 1; foreach (var tuple in deviceConsumerList) { var consumer = tuple.Item1.NewInstance(session, tuple.Item2, indexed ? num++ : (byte?)null); if (consumer is IDisposable disposable) { disposablePool.Add(disposable); } deviceStreamer.Attach(consumer); disposablePool.Add(new DelegatedDisposable(() => deviceStreamer.Detach(consumer))); } } } sessionListener?.BeforeStart(i, session); var result = session.Run(); sessionListener?.AfterCompleted(i, session); disposablePool.DisposeAll(); // Release resources. new SessionInfo(session).JsonSerializeToFile(session.GetDataFileName(SessionInfo.FileSuffix), JsonUtils.PrettyFormat, Encoding.UTF8); result?.Save(session); if (session.UserInterrupted && i < experimentParts.Count - 1 && MessageBox.Show("Continue following sessions?", "User Exit", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No, MessageBoxOptions.None) == MessageBoxResult.No) { break; } } } finally { streamers.Stop(); monitorWindow?.Release(); // Detach session from monitor. } } sessionListener?.AfterAllCompleted(sessions); }
private void Btn_Click(object sender, EventArgs e) { currentMonitor = new MonitorWindow(); currentMonitor.Show(); }
public Activity(MonitorWindow win) { this.win = win; colorOnFocus = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#FF00CCFF"); }
//构造函数 public WrapPanelControl(MonitorWindow win, Dictionary<string, UsbInfo> dic) { this.win = win; this.dic = dic; control = new ControlFactory(win); }