public PartsSystemDrawing(Dictionary <string, List <MeasureSegmentController> > measuresToAdd, List <string> partIDs, LayoutSystemInfo layoutInfo)
 {
     _attributesLayout = ViewModel.ViewModelLocator.Instance.Main.CurrentLayout.LayoutStyle.MeasureStyle;
     _systemLayout     = layoutInfo;
     _partIDsList      = partIDs;
     _partWidth        = measuresToAdd.FirstOrDefault(x => x.Key == measuresToAdd.Keys.FirstOrDefault()).Value.Sum(x => x.MinimalWidthWithAttributes);
     PartsSegmentsDraw(measuresToAdd, layoutInfo);
 }
 public PartSegmentDrawing(List <MeasureSegmentController> measureSegments, string partId, LayoutSystemInfo layoutInfo)
 {
     _partId           = partId;
     _measuresList     = measureSegments.Select(x => x.MeasureId).ToList();
     _partMeasures     = measureSegments;
     _partProperties   = ViewModel.ViewModelLocator.Instance.Main.PartsProperties[partId];
     _stavesCount      = _partProperties.NumberOfStaves;
     _systemLayoutInfo = layoutInfo;
     _systemLayoutInfo.PropertyChanged += SystemLayoutInfo_PropertyChanged;
     _staffDistance = _partProperties.StaffLayoutPerPage[_pageIndex][0].StaffDistance;
     CalculateDimensions();
 }
 public void GenerateContent(bool test, LayoutSystemInfo systemLayout)
 {
     if (systemLayout != null)
     {
         _measuresSegments = new List <Canvas>(); //! holds reference for future position update
         //! use system layout info
         foreach (var measureSegment in PartMeasures)
         {
             //! -------test
             _measuresSegments.Add(measureSegment.GetMeasureCanvas());
             //! -------
             Canvas.SetTop(measureSegment.GetMeasureCanvas(), 0);
             Canvas.SetLeft(measureSegment.GetMeasureCanvas(), systemLayout.WhicheverPartMeasureCoords(measureSegment.MeasureId, _partId).X);
             PartSegmentCanvas.Children.Add(measureSegment.GetMeasureCanvas());
         }
     }
 }
 private void PartsSegmentsDraw(Dictionary <string, List <MeasureSegmentController> > measuresList, LayoutSystemInfo layoutInfo)
 {
     _partsSegments    = new Dictionary <string, PartSegmentDrawing>();
     _partSystemCanvas = new Canvas();
     foreach (var partId in _partIDsList)
     {
         PartSegmentDrawing partSegment = new PartSegmentDrawing(measuresList[partId], partId, layoutInfo);
         _partsSegments.Add(partId, partSegment);
         partSegment.GenerateContent(true, layoutInfo);
         PartSystemCanvas.Children.Add(partSegment.PartSegmentCanvas);
     }
     ArrangeMeasureContent(true);
 }