Exemple #1
0
        /// <summary>
        /// Reads template data from given XML
        /// </summary>
        /// <param name="xmlAccess">object providing access to an XML file</param>
        public bool ReadFromXML(IXMLAccess xmlAccess)
        {
            Parts.Clear();

            try
            {
                XElement xmlData = xmlAccess.ReadXMLData();
                Name        = xmlData.Attribute(Constants.TemplateXML_Name).Value;
                FilePattern = xmlData.Attribute(Constants.TemplateXML_FilePattern)?.Value ?? "";

                XElement xmlDataConverters = xmlData.Element(Constants.TemplateXML_Converters);
                if (xmlDataConverters != null)
                {
                    foreach (XElement elementConverter in xmlDataConverters.Elements())
                    {
                        ParseConverter(elementConverter);
                    }
                }

                XElement xmlDataTemplate = xmlData.Element(Constants.TemplateXML_Template);
                foreach (XElement element in xmlDataTemplate.Elements())
                {
                    ParsePart(element, Parts);
                }

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemple #2
0
        /// <summary>
        /// Reading text with text template
        /// Lines starting with ## are comments
        /// Lines starting with # are program
        /// Other lines are printed to output
        /// </summary>
        /// <param name="text"></param>
        public void readTextTemplate(String text)
        {
            Parts.Clear();
            Parent = this;

            StringReader sr          = new StringReader(text);
            String       line        = null;
            GSList       currentList = this;

            while ((line = sr.ReadLine()) != null)
            {
                if (line.StartsWith("#"))
                {
                    readTextListLine(line.Substring(1), ref currentList);
                }
                else
                {
                    GSList list = currentList.createAndAddSublist();
                    list.Add(new GSToken()
                    {
                        Token = "println"
                    });
                    list.Add(new GSString()
                    {
                        Value = line
                    });
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// Cancels this transaction. The transaction will be invalid after this is called.
 /// </summary>
 public void Cancel()
 {
     AssertNotCommitted();
     IsCommitted = true;
     Parts.Clear();
     Control.Cancel(this);
 }
Exemple #4
0
        public override void Create()
        {
            Parts.Clear();
            // Part1
            if (GetPart1Dependencies() != null)
            {
                var part1 = Factory.CreateSegment(Drawing, GetPart1Dependencies());
                if (part1 != null)
                {
                    Parts.Add(part1);
                }
            }

            // Cross Part
            if (GetCrossPartDependencies() != null)
            {
                var crossPart = Factory.CreateCircle(Drawing, GetCrossPartDependencies());
                Parts.Add(crossPart);
            }

            Dependencies.Clear();
            Children.Clear();
            if (Parts != null)
            {
                foreach (IFigure f in Parts)
                {
                    Children.Add(f);
                    foreach (IPoint p in f.Dependencies)
                    {
                        Dependencies.Add(p);
                    }
                }
            }
        }
Exemple #5
0
        private void FileListHandler()
        {
            try
            {
                Search.changeDirectory += UpdateProgressText; // Very slow method
                for (int i = 0; i < listOfStatement.CheckedItems.Count; i++)
                {
                    //Search, sort and add files to the list
                    string fileNameFromTable = listOfStatement.CheckedItems[i].ToString() + ".*.*";
                    Search.TraverseTree(adressFieldIn.Text, fileNameFromTable);
                    BeginInvoke(new progressBarDelegate(UpdateProgressBar), i, listOfStatement.CheckedItems.Count);
                }
            }
            catch (ThreadAbortException e)
            {
                Console.WriteLine(e.Message);
                Thread.ResetAbort();
            }

            BeginInvoke(new fillListOfFoundedFile(FillListOfFoundedFiles));

            if (Parts != null)
            {
                if (copyOnlyLastVersionsChk.Checked)
                {
                    //Сreate hidden temporary folder
                    DirectoryInfo tDir = System.IO.Directory.CreateDirectory(adressFieldOut.Text + @"\Temp");
                    tDir.Attributes = FileAttributes.Directory | FileAttributes.Hidden;
                    TempFolder      = adressFieldOut.Text + @"\Temp";
                    //Copy temporary files
                    CopyFiles(Parts, TempFolder);
                    //Erase previous list of files
                    Parts.Clear();
                    try
                    {
                        for (int i = 0; i < listOfStatement.CheckedItems.Count; i++)
                        {
                            //Search, sort and add files to the list
                            string fileNameFromTable = listOfStatement.CheckedItems[i].ToString() + ".*.*";
                            Search.TraverseTree(TempFolder, fileNameFromTable);
                            BeginInvoke(new progressBarDelegate(UpdateProgressBar), i, listOfStatement.CheckedItems.Count);
                        }
                    }
                    catch (ThreadAbortException e)
                    {
                        Console.WriteLine(e.Message);
                        Thread.ResetAbort();
                    }

                    CopyFiles(Parts, adressFieldOut.Text);
                    // Delete temp folder
                    Directory.Delete(TempFolder, true);
                }
                else
                {
                    CopyFiles(Parts, adressFieldOut.Text);
                }
            }
            searchThread.Abort();
        }
Exemple #6
0
        internal bool HandlePart(Packet packet, out byte[] data)
        {
            data = null;
            byte code = packet.Data[0];

            byte[] ToStore = new byte[packet.Data.Length - 1];
            Array.Copy(packet.Data, 1, ToStore, 0, ToStore.Length);
            Parts.Add(ToStore);
            if (code == 0xFC)
            {
                return(false);
            }
            else
            {
                byte[][] Matrix = Parts.ToArray();
                Parts.Clear();
                byte[] result = new byte[Matrix.Sum(a => a.Length)];
                int    offset = 0;
                foreach (byte[] array in Matrix)
                {
                    Buffer.BlockCopy(array, 0, result, offset, array.Length);
                    offset += array.Length;
                }
                data = result;
                return(true);
            }
        }
Exemple #7
0
        public void Build(Measurements measurements)
        {
            Vector2 start = new Vector2(0, 0);

            Parts.Clear();

            OnProgressStateChanged("Building Hood");
            HoodPart hood = new HoodPart(start, measurements);

            Parts.Add(hood);
            if (measurements.GarmentHoodInsertWidth > 0)
            {
                Parts.Add(new HoodInsertPart(start, hood.HoodPathLengthForCutout, measurements));
            }

            OnProgressStateChanged("Building Sleeve");
            SleevePart sleeve = new SleevePart(start, measurements);

            Parts.Add(sleeve);

            OnProgressStateChanged("Building Front Bodice");
            FrontBodicePart partFront = new FrontBodicePart(start, hood.HoodNeckFrontLength, sleeve.FrontArmBezierLength, measurements);

            Parts.Add(partFront);

            OnProgressStateChanged("Building Back Bodice");
            BackBodicePart partBack = new BackBodicePart(start, hood.HoodNeckBackLength, sleeve.BackArmBezierLength, measurements);

            Parts.Add(partBack);

            OnProgressStateChanged("Building Measurements Panel");
            MeasurementsPart measurementsPart = new MeasurementsPart(start, measurements);

            Parts.Add(measurementsPart);
        }
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                Name = string.Empty;
                Parts?.Clear();

                UnderlyingPackage.Close();

                try
                {
                    File.Delete(_tempFileName);
                }
                catch (IOException ex)
                {
                    Debug.Fail(ex.Message);
                }
            }

            _disposed = true;
        }
Exemple #9
0
        /// <summary>
        /// Commits this transaction.
        /// </summary>
        /// <returns>The result.</returns>
        public PipelineTransactionResult Commit()
        {
            AssertNotCommitted();
            IsCommitted = true;
            var result = Control.Commit(this, Parts);

            Parts.Clear();

            return(result);
        }
Exemple #10
0
 /// <summary>
 /// Clear all child nodes and attributes from this node.
 /// </summary>
 public override void Clear()
 {
     Type      = "";
     Situation = "";
     Parts.Clear();
     Flags.Clear();
     ResourceTypes.Clear();
     RootPart      = null;
     rootPartIndex = 0;
     base.Clear();
 }
Exemple #11
0
        private void StartCopyBtn_Click(object sender, EventArgs e)
        {
            //Clear list of parts
            Parts.Clear();
            searchThread = new Thread(new ThreadStart(FileListHandler));
            searchThread.Start();
            listOfFoundedFiles.Items.Clear();

            btnStartCopy.Enabled = false;
            btnStartCopy.Text    = "Идет поиск";
        }
        async Task ReloadData(bool isSilent = false)
        {
            IsRefreshing = !isSilent;
            IsLoading    = true;

            var parts = await partsApiService.GetPartsAsync();

            Parts.Clear();
            Parts.AddRange(parts);

            IsRefreshing = false;
            IsLoading    = false;
        }
Exemple #13
0
        public void Initialize()
        {
            int geneSize = _settings.InitialPopulation.Count; // number of all items to be combined

            Parts.Clear();                                    // for re-initialisation when there is already a gene that's the same
            for (int i = 0; i < geneSize; i++)
            {
                Parts.Add(new GenePart <TCombinationModel>
                {
                    Model  = _settings.InitialPopulation[i],
                    Active = GAUtils.RandDouble() > 0.5
                });
            }
        }
 public void AddOrder(ObservableCollection <Part> parts)
 {
     using (PartShopDbContext db = new PartShopDbContext())
     {
         try
         {
             if (Card.Balance < Summary)
             {
                 throw new Exception("Недостаточно средств на счете");
             }
             else if (selectedDelivery == null)
             {
                 throw new Exception("Должна быть выбрана доставка");
             }
             Order order = new Order();
             order.OrderDate  = DateTime.Now;
             order.OrderState = Resources.waiting;
             List <OrderedParts> details = new List <OrderedParts>();
             foreach (Part i in Parts)
             {
                 if (i.Amount > db.Parts.Where(x => x.PartId == i.PartId).FirstOrDefault().Quantity)
                 {
                     throw new Exception($"Товаров {i.Name} недостаточно на складе для заказа");
                 }
                 details.Add(new OrderedParts()
                 {
                     OrderId = order.OrderId,
                     PartId  = i.PartId,
                     Amount  = i.Amount
                 });
                 db.Parts.Where(x => x.PartId == i.PartId).FirstOrDefault().Quantity -= i.Amount;
             }
             order.Parts      = details;
             order.UserId     = Settings.Default.UserId;
             order.DeliveryId = selectedDelivery.DeliveryId;
             db.Orders.Add(order);
             Card.Balance -= Summary;
             Parts.Clear();
             Summary = 0;
             db.SaveChanges();
             ConfirmOrderViewModel.orderId = order.OrderId;
             Singleton.getInstance(null).MainViewModel.CurrentViewModel = new ConfirmOrderViewModel();
         }
         catch (Exception e)
         {
             ErrorMessage = e.Message;
         }
     }
 }
        public void GetParts()
        {
            CurrentPartSuppliers.Clear();
            Parts.Clear();

            //Define Query against Inventory Locations to return Parts that match with Inventory Locations
            //Using AddQueryOption here to enforce the projection across entities. We chose to maintain the REST entity types and not create a  custom type (to support anonymous)this also helps to facilitate the databinding to between the View and ViewModel and simplifies updating.
            var inventoryLocationsQuery = (DataServiceQuery <InventoryLocationsItem>)context.InventoryLocations.Expand("Part").AddQueryOption("$select", "BinNumber,Quantity,Title,Id,PartId, Part/SKU,Part/Title,Part/Id").Where(p => p.Part.SKU.StartsWith(SearchSku)).OrderBy(p => p.Part.SKU);

            //Define Query against Parts to return Parts that match regardless of Inventory Locations
            var partsQuery = (DataServiceQuery <PartsItem>)context.Parts.Where(p => p.SKU.StartsWith(SearchSku)).Select(p => new PartsItem {
                Title = p.Title, SKU = p.SKU, Id = p.Id, Description = p.Description
            });


            //Execute Query as a Batch
            context.BeginExecuteBatch(DisplayParts, context, inventoryLocationsQuery, partsQuery);
        }
        public void Dispose()
        {
            if (DefaultVertexBuffer?.DisposalLevel == ItemDisposalLevel.ModelMesh)
            {
                DefaultVertexBuffer.Dispose();
            }
            DefaultVertexBuffer = null;
            if (IndexBuffer?.DisposalLevel == ItemDisposalLevel.ModelMesh)
            {
                IndexBuffer.Dispose();
            }
            IndexBuffer = null;

            foreach (ModelMeshPart part in Parts)
            {
                part.Dispose();
            }
            Parts.Clear();
        }
Exemple #17
0
 private void DeleteAllParts()
 {
     //须判断是否放置在料盘中
     foreach (var part in Parts)
     {
         if (part.Placed)
         {
             MessageBox.Show("有未卸载零件,无法清除", "警告", MessageBoxButton.OK, MessageBoxImage.Exclamation, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
             return;
         }
     }
     Parts.Clear();
     if (SelectParts != null)
     {
         SelectParts.Clear();
     }
     CategoriesRefresh();
     PartsFileRepository.UpdateParts(Parts);
 }
Exemple #18
0
        private void PopulateParts()
        {
            Parts.Clear();

            foreach (var entry in _billOfMaterials.SMDEntries)
            {
                if (!Parts.Where(prt => prt.PackageName == entry.Package.Name &&
                                 prt.LibraryName == entry.Package.LibraryName &&
                                 prt.Value == entry.Value).Any())
                {
                    Parts.Add(new Part()
                    {
                        Count       = entry.Components.Count,
                        LibraryName = entry.Package.LibraryName,
                        PackageName = entry.Package.Name,
                        Value       = entry.Value
                    });
                }
            }
        }
        async Task ReloadData(bool isSilent = false)
        {
            IsRefreshing = !isSilent;
            IsLoading    = true;

            try
            {
                var parts = await partsApiService.GetPartsAsync();

                Parts.Clear();
                Parts.AddRange(parts);
            }
            catch
            {
                await CoreMethods.DisplayAlert("Error", "An error occured while communicating with the backend. Please double-check your settings and try again.", "Ok");
            }

            IsRefreshing = false;
            IsLoading    = false;
        }
        public void GetParts()
        {
            Parts.Clear();
            CurrentPart = null;

            //Define Query
            var query = (DataServiceQuery <PartsItem>)
                        context.Parts
                        .Where(p => p.SKU.StartsWith(SearchSku))
                        .Select(p => new PartsItem
            {
                Title       = p.Title,
                SKU         = p.SKU,
                Id          = p.Id,
                Description = p.Description
            });

            //Execute Query
            query.BeginExecute(DisplayParts, query);
        }
Exemple #21
0
        public void GetParts()
        {
            Parts.Clear();

            ListsSoapClient proxy = GetListServiceProxy();

            proxy.GetListItemsCompleted += proxy_GetPartsListItemsCompleted;
            var query        = XElement.Parse(@"<Query>
                                            <Where>
                                                <BeginsWith>
                                                    <FieldRef Name='SKU' />
                                                    <Value Type='Text'>" + SearchSku + @"</Value>
                                                </BeginsWith>
                                            </Where>
                                          </Query>");
            var queryOptions = XElement.Parse(@"<QueryOptions></QueryOptions>");
            var viewFields   = XElement.Parse(@"<ViewFields></ViewFields>");

            proxy.GetListItemsAsync("Parts", null, query, viewFields, null, queryOptions, null);
        }
Exemple #22
0
        private void Dispose(Boolean disposing)
        {
            if (!Disposed)
            {
                if (disposing)
                {
                    foreach (var partkv in Parts)
                    {
                        partkv.Value.PartStream?.Dispose();
                    }
                    Parts.Clear();
                    Entries.Clear();
                }
                Reader.Dispose();
                Reader.Close();
                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                Disposed = true;
            }
        }
Exemple #23
0
        public void Load(string path)
        {
            if (!File.Exists(path))
            {
                return;
            }

            Parts.Clear();
            using (var br = new BinaryReader(File.Open(path, FileMode.Open)))
            {
                AABB       = RectangleAABB.FromStream(br);
                Scale      = Vector2Ex.FromStream(br);
                Center     = Vector2Ex.FromStream(br);
                MorphScale = br.ReadSingle();

                var cnt = br.ReadInt32();
                for (var i = 0; i < cnt; i++)
                {
                    Parts.Add(RenderMeshPart.FromStream(br));
                }
            }
        }
Exemple #24
0
        public override void ReCreate()
        {
            if (Parts != null)
            {
                foreach (IFigure part in Parts)
                {
                    part.OnRemovingFromCanvas(Drawing.Canvas);
                }
                Parts.Clear();
            }

            Create();
            foreach (IFigure part in Parts)
            {
                part.OnAddingToCanvas(Drawing.Canvas);

                foreach (IPoint p in part.Dependencies)
                {
                    Dependencies.Add(p);
                }
            }
            UpdateVisual();
        }
Exemple #25
0
        public override void Create()
        {
            Parts.Clear();
            Dependencies.Clear();
            Children.Clear();
            switch (BarStyle)
            {
            case Reinforcement.BarStyle.SingleLine:
                // Part1
                // Chú ý khi gọi phương thức GetPart1Dependencies()
                // ứng với trường hợp Transform = Rotate180, Rotate90CCW, Rotate90CW
                // Thì góc Rotate đã bị thay đổi 1 lần
                // Do đó trong phương thức GetPart1Dependencies()
                // khi thay đổi góc Rotate chỉ thay đổi 1/2 là đủ
                if (GetPart1Dependencies() != null)
                {
                    var part1 = Factory.CreateSegment(Drawing, GetPart1Dependencies());
                    part1.Style = base.Style;
                    Parts.Add(part1);
                }
                // Part2
                if (GetPart2Dependencies() != null)
                {
                    if (ViewDirection != Reinforcement.ViewDirection.Left)
                    {
                        var part2 = Factory.CreateArc(Drawing, GetPart2Dependencies());
                        part2.Clockwise = ArcPartClockWise;
                        part2.Style     = base.Style;
                        Parts.Add(part2);
                    }
                    else
                    {
                        var part2 = Factory.CreateSegment(Drawing, GetPart2Dependencies());
                        part2.Style = base.Style;
                        Parts.Add(part2);
                    }
                }
                // Part3
                if (GetPart3Dependencies() != null)
                {
                    var part3 = Factory.CreateSegment(Drawing, GetPart3Dependencies());
                    part3.Style = base.Style;
                    Parts.Add(part3);
                }

                // Cross Part
                if (GetCrossPartDependencies() != null)
                {
                    var crossPart = Factory.CreateCircle(Drawing, GetCrossPartDependencies());
                    crossPart.Style = base.Style;
                    Parts.Add(crossPart);
                }

                if (Parts != null)
                {
                    foreach (IFigure f in Parts)
                    {
                        Children.Add(f);
                        foreach (IPoint p in f.Dependencies)
                        {
                            Dependencies.Add(p);
                            DependencyPoints.Add(p.Coordinates);
                        }
                    }
                }
                break;

            case Reinforcement.BarStyle.BoundLine:
                break;

            case Reinforcement.BarStyle.FilledLine:
                break;
            }
        }
Exemple #26
0
 public void Clear()
 {
     Parts.Clear();
 }
 /// <summary>
 /// Generates the datas.
 /// </summary>
 public override void GenerateDatas()
 {
     LowPoints.Clear();
     HighPoints.Clear();
     OpenPoints.Clear();
     ClosePoints.Clear();
     if (!IsPointsGenerated)
     {
         Parts.Clear();
     }
     if (this.Points != null && this.SeriesContainer != null)
     {
         CalculateMinAndMax();
         OpenOffPoints  = new PointCollection();
         CloseOffPoints = new PointCollection();
         ChartPoint oldPoint = new ChartPoint()
         {
             XValue = double.MinValue, YValue = double.MinValue
         };
         IntializePoints();
         int   index            = 0;
         Point startAndEndPoint = CalculateSeriesInfo();
         foreach (ChartPoint point in this.Points)
         {
             if (CheckValuePoint(oldPoint, point))
             {
                 Point highPoint     = NormalizePoint(new Point(point.XValue, point.YValue));
                 Point lowPoint      = NormalizePoint(new Point(lowPoints[index].XValue, lowPoints[index].YValue));
                 Point openPoint     = NormalizePoint(new Point(openPoints[index].XValue, openPoints[index].YValue));
                 Point closePoint    = NormalizePoint(new Point(closePoints[index].XValue, closePoints[index].YValue));
                 Point openOffPoint  = NormalizePoint(new Point(openPoints[index].XValue + startAndEndPoint.X, openPoints[index].YValue));
                 Point closeOffPoint = NormalizePoint(new Point(closePoints[index].XValue - startAndEndPoint.X, closePoints[index].YValue));
                 HighPoints.Add(highPoint);
                 LowPoints.Add(lowPoint);
                 OpenPoints.Add(openPoint);
                 ClosePoints.Add(closePoint);
                 OpenOffPoints.Add(openOffPoint);
                 CloseOffPoints.Add(closeOffPoint);
                 oldPoint = point;
             }
             index++;
         }
         if (this.RenderingMode == RenderingMode.Default)
         {
             if (!IsPointsGenerated)
             {
                 for (int i = 0; i < this.HighPoints.Count; i++)
                 {
                     HiLoOpenClosePart hiLoOpenClosePart = new HiLoOpenClosePart(this.HighPoints[i], this.LowPoints[i], this.ClosePoints[i], this.CloseOffPoints[i], this.OpenPoints[i], this.OpenOffPoints[i]);
                     if (this.openPoints[i].YValue <= this.closePoints[i].YValue)
                     {
                         hiLoOpenClosePart.IsBearfill = true;
                     }
                     else
                     {
                         hiLoOpenClosePart.IsBearfill = false;
                     }
                     SetBindingForStrokeandStrokeThickness(hiLoOpenClosePart);
                     this.Parts.Add(hiLoOpenClosePart);
                 }
                 IsPointsGenerated = true;
             }
             else
             {
                 int i = 0;
                 foreach (HiLoOpenClosePart part in this.Parts)
                 {
                     part.Point1 = this.HighPoints[i];
                     part.Point2 = this.LowPoints[i];
                     part.Point3 = this.ClosePoints[i];
                     part.Point4 = this.CloseOffPoints[i];
                     part.Point5 = this.OpenPoints[i];
                     part.Point6 = this.OpenOffPoints[i];
                     part.Refresh();
                     i++;
                 }
             }
         }
     }
     else
     {
         Parts.Clear();
     }
     if (this.SeriesContainer != null)
     {
         this.SeriesContainer.Invalidate();
     }
     IsRefreshed = false;
 }
Exemple #28
0
        /// <summary>
        /// Generates the datas.
        /// </summary>
        override public void GenerateDatas()
        {
            CalculateMinAndMax();
            ChartPoint oldPoint = new ChartPoint()
            {
                XValue = double.MinValue, YValue = double.MinValue
            };

            IntializePoints();
            SplinePoints.Clear();
            if (!IsPointsGenerated)
            {
                Parts.Clear();
            }
            if (this.Points != null && this.SeriesContainer != null)
            {
                CalculateMinAndMax();
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        this.SplinePoints.Add(linePoint);
                    }
                }
                if (this.SplinePoints.Count > 1)
                {
                    BezierSpline.GetCurveControlPoints(this.SplinePoints.ToArray(), out FirstControlPoints, out SecondControlPoints);
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < this.SplinePoints.Count - 1; i++)
                        {
                            SplinePart splinePart = new SplinePart(SplinePoints[i], FirstControlPoints[i], SecondControlPoints[i], SplinePoints[i + 1]);
                            SetBindingForStrokeandStrokeThickness(splinePart);
                            this.Parts.Add(splinePart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (SplinePart part in this.Parts)
                        {
                            part.StartPoint        = SplinePoints[i];
                            part.FirstControlPoint = FirstControlPoints[i];
                            part.EndControlPoint   = SecondControlPoints[i];
                            part.EndPoint          = SplinePoints[i + 1];
                            part.Refresh();
                            i++;
                        }
                    }
                }
            }
            else
            {
                Parts.Clear();
            }
            if (this.SeriesContainer != null)
            {
                this.SeriesContainer.Invalidate();
            }
            IsRefreshed = false;
        }
        /// <summary>
        /// Generates the datas.
        /// </summary>
        override public void GenerateDatas()
        {
            if (Points != null && SeriesContainer != null)
            {
                PiePoints = new PointCollection();
                var centerPoint = (SeriesContainer.Collection.ActualHeight <= SeriesContainer.Collection.ActualWidth)
                    ? new Point(SeriesContainer.Collection.ActualHeight / 2, SeriesContainer.Collection.ActualHeight / 2)
                    : new Point(SeriesContainer.Collection.ActualWidth / 2, SeriesContainer.Collection.ActualWidth / 2);
                PiePoints.Add(centerPoint);
                if (PointsSource == null && Points.Count > 0)
                {
                    TotalYValues = Points.Sum(point => point.YValue);
                }

                if (!IsPointsGenerated)
                {
                    Parts.Clear();
                }
                double rad = (SeriesContainer.Collection.ActualHeight <= SeriesContainer.Collection.ActualWidth)
                    ? SeriesContainer.Collection.ActualHeight
                    : SeriesContainer.Collection.ActualWidth;
                double width  = SeriesContainer.Collection.ActualWidth;
                double height = SeriesContainer.Collection.ActualHeight;
                if (RenderingMode == RenderingMode.Default)
                {
                    var angle = -Math.PI / 2;
                    if (!IsPointsGenerated)
                    {
                        foreach (var point in Points)
                        {
                            var      path       = new Path();
                            Geometry geometry   = new PathGeometry();
                            var      x          = Math.Cos(angle) * rad / 2 + rad / 2;
                            var      y          = Math.Sin(angle) * rad / 2 + rad / 2;
                            var      lingeSeg   = new LineSegment(new Point(x, y), true);
                            double   angleShare = (point.YValue / TotalYValues) * 360;
                            angle += DegreeToRadian(angleShare);
                            x      = Math.Cos(angle) * rad / 2 + rad / 2;
                            y      = Math.Sin(angle) * rad / 2 + rad / 2;
                            var arcSeg = new ArcSegment(new Point(x, y), new Size(rad / 2, rad / 2), angleShare,
                                                        angleShare > 180, SweepDirection.Clockwise, false);
                            var lingeSeg2 = new LineSegment(new Point(rad / 2, rad / 2), true);
                            var fig       = new PathFigure(new Point(rad / 2, rad / 2),
                                                           new PathSegment[] { lingeSeg, arcSeg, lingeSeg2 }, false);
                            ((PathGeometry)geometry).Figures.Add(fig);
                            var brush = Brushes[Points.IndexOf(point) % (Brushes.Count)];

                            path.Data = geometry;
                            Parts.Add(new PiePart(path)
                            {
                                Stroke = brush
                            });
                        }

                        IsPointsGenerated = true;
                    }
                    else
                    {
                        foreach (var point in Points)
                        {
                            Geometry geometry   = new PathGeometry();
                            var      x          = Math.Cos(angle) * rad / 2 + rad / 2;
                            var      y          = Math.Sin(angle) * rad / 2 + rad / 2;
                            var      lingeSeg   = new LineSegment(new Point(x, y), true);
                            double   angleShare = (point.YValue / TotalYValues) * 360;
                            angle += DegreeToRadian(angleShare);
                            x      = Math.Cos(angle) * rad / 2 + rad / 2;
                            y      = Math.Sin(angle) * rad / 2 + rad / 2;
                            var arcSeg = new ArcSegment(new Point(x, y), new Size(rad / 2, rad / 2), angleShare,
                                                        angleShare > 180, SweepDirection.Clockwise, false);
                            var lingeSeg2 = new LineSegment(new Point(rad / 2, rad / 2), true);
                            var fig       = new PathFigure(new Point(rad / 2, rad / 2),
                                                           new PathSegment[] { lingeSeg, arcSeg, lingeSeg2 }, false);
                            ((PathGeometry)geometry).Figures.Add(fig);
                            ((Parts[Points.IndexOf(point)] as PiePart).Slice as Path).Data = geometry;
                        }
                    }
                }
            }
            else
            {
                Parts.Clear();
            }

            if (this.SeriesContainer != null)
            {
                this.SeriesContainer.Invalidate();
            }
            IsRefreshed = false;
        }
Exemple #30
0
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            LowPoints.Clear();
            HighPoints.Clear();
            OpenPoints.Clear();
            ClosePoints.Clear();
            //if (!IsPointsGenerated)
            Parts.Clear();
            if (this.Points != null && this.SeriesContainer != null)
            {
                CalculateMinAndMax();
                OpenOffPoints  = new PointCollection();
                CloseOffPoints = new PointCollection();
                ChartPoint oldPoint = new ChartPoint()
                {
                    XValue = double.MinValue, YValue = double.MinValue
                };
                IntializePoints();
                int   index            = 0;
                Point startAndEndPoint = CalculateSeriesInfo();
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point highPoint     = NormalizePoint(new Point(point.XValue, point.YValue));
                        Point lowPoint      = NormalizePoint(new Point(lowPoints[index].XValue, lowPoints[index].YValue));
                        Point openPoint     = NormalizePoint(new Point(openPoints[index].XValue - startAndEndPoint.X / 4, openPoints[index].YValue));
                        Point closePoint    = NormalizePoint(new Point(closePoints[index].XValue + startAndEndPoint.X / 4, closePoints[index].YValue));
                        Point openOffPoint  = NormalizePoint(new Point(openPoints[index].XValue + startAndEndPoint.X / 4, openPoints[index].YValue));
                        Point closeOffPoint = NormalizePoint(new Point(closePoints[index].XValue - startAndEndPoint.X / 4, closePoints[index].YValue));
                        HighPoints.Add(highPoint);
                        LowPoints.Add(lowPoint);
                        OpenPoints.Add(openPoint);
                        ClosePoints.Add(closePoint);
                        OpenOffPoints.Add(openOffPoint);
                        CloseOffPoints.Add(closeOffPoint);
                        oldPoint = point;
                    }
                    index++;
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    //if (!IsPointsGenerated)
                    {
                        StrokeThickness = HighPoints.Count > 3 ? NormalizePoint(new Point(1, 0)).X / (HighPoints.Count) : 30;
                        for (int i = 0; i < this.HighPoints.Count; i++)
                        {
                            BarErrorPart barErrorPart = new BarErrorPart(this.HighPoints[i], this.LowPoints[i], this.ClosePoints[i], this.CloseOffPoints[i], this.OpenPoints[i], this.OpenOffPoints[i], HighValues[i], ErrorValues[i], Chart.ActualCategoryValues[i]);
                            if (this.openPoints[i].YValue <= this.closePoints[i].YValue)
                            {
                                barErrorPart.IsBearfill = true;
                            }
                            else
                            {
                                barErrorPart.IsBearfill = false;
                            }
                            SetBindingForStrokeandStrokeThickness(barErrorPart);

                            this.Parts.Add(barErrorPart);
                        }
                        IsPointsGenerated = true;
                    }
                    //else
                    //{

                    //int i = 0;
                    //foreach (BarErrorPart part in this.Parts)
                    //{
                    //    part.Point1 = this.HighPoints[i];
                    //    part.Point2 = this.LowPoints[i];
                    //    part.Point3 = this.ClosePoints[i];
                    //    part.Point4 = this.CloseOffPoints[i];
                    //    part.Point5 = this.OpenPoints[i];
                    //    part.Point6 = this.OpenOffPoints[i];
                    //    part.Mean =  HighValues[i];
                    //    part.Error = ErrorValues[i];
                    //    part.XName = Chart.ActualCategoryValues[i];
                    //    part.Refresh();

                    //    i++;
                    //  }
                    //}
                }
            }
            else
            {
                Parts.Clear();
            }
            if (this.SeriesContainer != null)
            {
                this.SeriesContainer.Invalidate();
            }
            IsRefreshed = false;
            //Refresh();
        }