コード例 #1
0
        public MainViewModel(
            IDataApiClient dataApiClient,
            DataVisualizer dataVisualizer,
            IReadonlyObjectDatabase <UserProfile> userDatabase,
            IReadonlyObjectDatabase <DataSet> dataSetDatabase,
            IReadonlyObjectDatabase <DataProject> dataProjectDatabase,
            IClipboard clipboard,
            IClosable mainWindow)
        {
            this.dataApiClient       = dataApiClient;
            this.userDatabase        = userDatabase;
            this.mainWindow          = mainWindow;
            DataSetMainViewModel     = new DataSetMainViewModel(dataApiClient, dataSetDatabase, dataProjectDatabase, clipboard);
            CollectionsMainViewModel = new CollectionsMainViewModel(dataApiClient, dataVisualizer, userDatabase, clipboard);

            var passwordBoxSpawner = new WpfPasswordBoxSpawner();
            var loginViewSpawner   = new WpfWindowSpawner <LoginViewModel>(vm => new LoginWindow {
                ViewModel = vm
            });
            var changePasswordViewSpawner = new WpfWindowSpawner <ChangePasswordViewModel>(vm => new ChangePasswordWindow {
                ViewModel = vm
            });

            UserSwitchViewModel = new UserSwitchViewModel(
                dataApiClient,
                LoginSuccessful,
                LoginFailed,
                passwordBoxSpawner,
                loginViewSpawner,
                changePasswordViewSpawner);
            OpenUserManagementWindowCommand = new RelayCommand(OpenUserManagementWindow);
            OpenAboutWindowCommand          = new RelayCommand(OpenAboutWindow);
        }
コード例 #2
0
    // Start is called before the first frame update
    void Start()
    {
        path   = $"Assets/Resources/{filename}.txt";
        reader = new StreamReader(path);

        stockList = ParseFile();
        stockList.Reverse();

        DataVisualizer visualizer = FindObjectOfType <DataVisualizer>();

        visualizer.Visualize();
    }
コード例 #3
0
 public CollectionExplorationViewModel(
     IDataApiClient dataApiClient,
     CollectionInformation collectionInformation,
     DataVisualizer dataVisualizer,
     IClipboard clipboard,
     ICollectionSwitcher collectionSwitcher)
 {
     CollectionInformation   = collectionInformation;
     DataObjectListViewModel = new DataObjectListViewModel(collectionInformation, dataApiClient, dataVisualizer, clipboard, collectionSwitcher);
     QueryEditorViewModel    = new QueryEditorViewModel(dataApiClient, collectionInformation.CollectionName);
     QueryEditorViewModel.JsonSearchFinished += QueryEditorViewModel_JsonSearchFinished;
 }
コード例 #4
0
 public CollectionsMainViewModel(
     IDataApiClient dataApiClient,
     DataVisualizer dataVisualizer,
     IReadonlyObjectDatabase <UserProfile> userDatabase,
     IClipboard clipboard)
 {
     this.dataApiClient      = dataApiClient;
     this.dataVisualizer     = dataVisualizer;
     this.clipboard          = clipboard;
     collectionSwitcher      = new CollectionSwitcher(SwitchToCollection, Constants.DefaultQuery);
     CollectionListViewModel = new CollectionListViewModel(dataApiClient, userDatabase);
     CollectionListViewModel.PropertyChanged += CollectionListViewModel_PropertyChanged;
 }
コード例 #5
0
        public DataObjectListViewModel(
            CollectionInformation collectionInformation,
            IDataApiClient dataApiClient,
            DataVisualizer dataVisualizer,
            IClipboard clipboard,
            ICollectionSwitcher collectionSwitcher)
        {
            this.dataApiClient = dataApiClient;

            this.dataVisualizer     = dataVisualizer;
            this.clipboard          = clipboard;
            this.collectionSwitcher = collectionSwitcher;
            CollectionInformation   = collectionInformation;
            CanVisualize            = dataVisualizer.CanVisualize(CollectionInformation.CollectionName);
            ExportCommand           = new RelayCommand(Export, CanExport);
            VisualizeCommand        = new RelayCommand(Visualize, () => CanVisualize);
        }
コード例 #6
0
        /// <summary>
        /// Closes the data visualizer.
        /// </summary>
        private void CloseDataVisualizer()
        {
            if (!_dataVisualizerOpened)
            {
                return;
            }

            _dataVisualizerOpened = false;

            ThumbnailViewHeight = Constants.TimeLineScrollViewHeight;

            _timeLineScrollView.Frame = new CGRect(Constants.Origin,
                                                   View.Frame.Height - Constants.TimeLineScrollViewHeight
                                                   - Constants.ResultsToolBarHeight, View.Frame.Width,
                                                   Constants.TimeLineScrollViewHeight);

            CalculateScaledDimensions(InputImageEntry.Image);
            ImageView.Frame = new CGRect(0, 0, ImgWidth, ImgHeight);

            UpdateScrollViewDimensions();
            UpdateBoundingBoxes();

            _thumbnailStackView.Frame = new CGRect(Constants.Origin,
                                                   Constants.Origin,
                                                   Constants.TotalThumbnailWidth * InputImageEntries.Count,
                                                   Constants.ThumbnailHeight);

            _subHeadingStackView.Frame = new CGRect(Constants.Origin,
                                                    Constants.Origin,
                                                    Constants.TotalThumbnailWidth * InputImageEntries.Count,
                                                    Constants.SubheadingViewHeight);

            _dataVisualizer.Chart.RemoveFromSuperview();
            _legendView.RemoveFromSuperview();

            _dataVisualizer.Dispose();
            _legendView.Dispose();
            _legendScrollView.Dispose();
            _dataVisualizerCloseButton.Dispose();

            _dataVisualizer            = null;
            _legendView                = null;
            _legendScrollView          = null;
            _dataVisualizerCloseButton = null;
        }
コード例 #7
0
ファイル: HomeController.cs プロジェクト: bmla/SW9_Project
        public ActionResult GetImage(string testId, GestureType type, DataSource source = DataSource.Old)
        {
            List <Attempt> attempts = new List <Attempt>();

            if (testId != "average")
            {
                attempts = AttemptRepository.GetTest(testId, source).Attempts[type];
            }
            else
            {
                var tests = AttemptRepository.GetTests(source);
                foreach (var test in tests)
                {
                    attempts.AddRange(test.Attempts[type]);
                }
            }
            MemoryStream ms;

            DataVisualizer.DrawHitBox(attempts, out ms);
            return(File(ms, "image/png"));
        }
コード例 #8
0
    // Invoked when the value of the slider changes.
    public void ValueChange()
    {
        if (SliderInstance.value == 0)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(0);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 1)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(1);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 2)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(2);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 3)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(3);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 4)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(4);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 5)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(5);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 6)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(6);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 7)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(7);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 8)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(8);
            //Debug.Log(SliderInstance.value);
        }

        else if (SliderInstance.value == 9)
        {
            // select TimeStamp 1 in index from ActivateSeries
            ChangeData = FindObjectOfType <DataVisualizer>();
            ChangeData.ActivateSeries(9);
            // Debug.Log(SliderInstance.value);
        }
    }
コード例 #9
0
 private void Awake()
 {
     thisDV = this;
 }
コード例 #10
0
 void Awake()
 {
     GenerateGraphBounds();
     dataVisualizer = FindObjectOfType <DataVisualizer>();
 }
コード例 #11
0
 void OnEnable()
 {
     dv = (DataVisualizer)target;
 }
コード例 #12
0
        /// <summary>
        /// Opens data visualizer with the detected <see cref="Observation"/>s.
        /// </summary>
        private void OpenDataVisualizer()
        {
            if (_dataVisualizerOpened)
            {
                return;
            }

            _dataVisualizerOpened = true;

            var allDataPoints = new List <Dictionary <Category, int> >();
            var allCategories = new HashSet <Category>();

            foreach (var imageEntry in InputImageEntries)
            {
                UpdateCategoryColors(imageEntry);
                var dataPoints = new Dictionary <Category, int>();
                foreach (var observation in imageEntry.Observations)
                {
                    if (dataPoints.ContainsKey(observation.Category))
                    {
                        dataPoints[observation.Category]++;
                    }
                    else
                    {
                        dataPoints.Add(observation.Category, 1);
                    }

                    allCategories.Add(observation.Category);
                }
                allDataPoints.Add(dataPoints);
            }

            _dataVisualizer = new BarChartSeries(allDataPoints, allCategories);
            _dataVisualizer.Update(allCategories.Where(category => SidebarController.CheckboxState[category]),
                                   new Category[] { }, View);

            ThumbnailViewHeight = Constants.TimeLineScrollViewHeight + Constants.BarChartSeriesStackViewHeight +
                                  Constants.LegendHeight;

            _timeLineScrollView.Frame = new CGRect(Constants.Origin,
                                                   View.Frame.Height - Constants.ResultsToolBarHeight - ThumbnailViewHeight + Constants.LegendHeight,
                                                   View.Frame.Width, ThumbnailViewHeight);

            CalculateScaledDimensions(InputImageEntry.Image);
            ImageView.Frame = new CGRect(0, 0, ImgWidth, ImgHeight);

            UpdateScrollViewDimensions();

            UpdateBoundingBoxes();

            var barChartsTopConstraint = NSLayoutConstraint.Create(_dataVisualizer.Chart, NSLayoutAttribute.Top,
                                                                   NSLayoutRelation.Equal, _timeLineScrollView, NSLayoutAttribute.Top, 1f, 0f);
            var barChartsLeadingConstraint = NSLayoutConstraint.Create(_dataVisualizer.Chart, NSLayoutAttribute.Leading,
                                                                       NSLayoutRelation.Equal, _timeLineScrollView, NSLayoutAttribute.Leading, 1f, 0f);

            _timeLineScrollView.AddSubview(_dataVisualizer.Chart);
            _timeLineScrollView.AddConstraints(new[]
            {
                barChartsTopConstraint,
                barChartsLeadingConstraint
            });

            _thumbnailStackView.Frame = new CGRect(Constants.Origin,
                                                   Constants.BarChartSeriesStackViewHeight,
                                                   Constants.TotalThumbnailWidth * InputImageEntries.Count,
                                                   Constants.ThumbnailHeight);

            _subHeadingStackView.Frame = new CGRect(Constants.Origin,
                                                    Constants.BarChartSeriesStackViewHeight,
                                                    Constants.TotalThumbnailWidth * InputImageEntries.Count,
                                                    Constants.SubheadingViewHeight);

            _legendScrollView = new UIScrollView(new CGRect(0, 0, View.Frame.Width, Constants.LegendHeight))
            {
                ContentSize            = new CGSize(_dataVisualizer.Legend.Frame.Width, Constants.LegendHeight),
                BackgroundColor        = Constants.LegendViewColour,
                UserInteractionEnabled = true,
                ScrollEnabled          = true
            };

            _legendView = new UIView(new CGRect(Constants.Origin,
                                                View.Frame.Height - Constants.ResultsToolBarHeight - ThumbnailViewHeight,
                                                View.Frame.Width, Constants.LegendHeight))
            {
                BackgroundColor        = Constants.LegendViewColour,
                UserInteractionEnabled = true
            };

            View.AddSubview(_legendView);

            var legendLeadingConstraint = NSLayoutConstraint.Create(_dataVisualizer.Legend,
                                                                    NSLayoutAttribute.LeadingMargin, NSLayoutRelation.Equal, _legendScrollView,
                                                                    NSLayoutAttribute.LeadingMargin, 1f, 0f);
            var legendCenterYConstraint = NSLayoutConstraint.Create(_dataVisualizer.Legend, NSLayoutAttribute.CenterY,
                                                                    NSLayoutRelation.Equal, _legendScrollView, NSLayoutAttribute.CenterY, 1f, 0f);

            _legendScrollView.AddSubview(_dataVisualizer.Legend);
            _legendScrollView.AddConstraints(new[]
            {
                legendLeadingConstraint,
                legendCenterYConstraint
            });

            _dataVisualizerCloseButton = new UIButton(UIButtonType.System)
            {
                TintColor = Constants.CloseBtnColor
            };
            _dataVisualizerCloseButton.SetImage(new UIImage(Constants.CloseBtnImage), UIControlState.Normal);
            _dataVisualizerCloseButton.SizeToFit();

            _dataVisualizerCloseButton.Frame = new CGRect(
                View.Frame.Width - _dataVisualizerCloseButton.Frame.Width - Constants.CloseButtonMargin,
                (Constants.LegendHeight - _dataVisualizerCloseButton.Frame.Height) / 2,
                _dataVisualizerCloseButton.Frame.Width,
                _dataVisualizerCloseButton.Frame.Height);

            ConfigureDataVisualizeCloseButtonAccessibilityAttribute(_dataVisualizerCloseButton);

            _legendScrollView.Frame = new CGRect(0, 0,
                                                 View.Frame.Width - _dataVisualizerCloseButton.Frame.Width - Constants.CloseButtonMargin * 2,
                                                 Constants.LegendHeight);

            _legendView.AddSubview(_legendScrollView);
            _legendView.AddSubview(_dataVisualizerCloseButton);

            _dataVisualizerCloseButton.TouchUpInside += DataVisualizerCloseButton_TouchUpInside;

            _legendScrollView.BringSubviewToFront(_dataVisualizerCloseButton);
        }