예제 #1
0
        public MainWindow()
        {
            InitializeComponent();

            currentUser = new User(Properties.Settings.Default.UserId, null);
            panopticonPercentage = 0;
            panopticonState = Stage2UI.PanopticonState.PROCESSING;
            toDownload = 0;
            downloaded = 0;

            Stage2Control.AnnotationMade += new Stage2UI.AnnotationMadeEventHandler(Stage2Control_AnnotationMade);
            Stage2Control.ResearchQuestionSubmitted += new Stage2UI.ResearchQuestionSubmittedEventHandler(Stage2Control_ResearchQuestionSubmitted);

            Loaded += new RoutedEventHandler(MainWindow_Loaded);
        }
예제 #2
0
        private void DownloadData()
        {
            panopticonState = Stage2UI.PanopticonState.DOWNLOADING;
            panopticonPercentage = 0;

            UpdatePanopticonState();
            UpdatePanopticonPercentage();

            BackgroundWorker worker = new BackgroundWorker();
            worker.DoWork += new DoWorkEventHandler((s, e) =>
            {
                videoFile = proxy.GetVideoFilename();
                panopticonFile = proxy.GetPanopticonFilename();
                panopticonInfo = proxy.GetPanopticonInfo();
                presses = proxy.GetPresses();
                length = proxy.GetStudyLength();

                toDownload = proxy.GetVideoSize() + proxy.GetPanopticonSize();
                downloaded = 0;

                Thread t1 = new Thread(() =>
                {
                    if (!File.Exists(videoFile))
                    {
                        Stream videoStream = fileProxy.DownloadVideo();
                        DownloadFile(videoStream, videoFile);
                    }
                });

                Thread t2 = new Thread(() =>
                {
                    if (!File.Exists(panopticonFile))
                    {
                        Stream panopticonStream = fileProxy.DownloadPanopticonVideo();
                        DownloadFile(panopticonStream, panopticonFile);
                    }
                });

                t1.Start();
                t2.Start();
                t1.Join();
                t2.Join();

                panopticonState = Stage2UI.PanopticonState.READY;
                UpdatePanopticonState();
            });

            worker.RunWorkerAsync();
        }