Beispiel #1
0
        public void XmlEncodingTest() {
            var chart = new GanttChart
                        {
                            Caption = "Gantt Chart 'Sample' 입니다.",
                            SubCaption = "<< Sub \"LegendCaption\" & 특수문자 입니다 >>",
                            DateFormat = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
                        };

            var categories = new CategoriesElement
                             {
                                 new CategoryElement
                                 {
                                     Start = DateTime.Today.AddYears(-1),
                                     End = DateTime.Today.AddYears(1),
                                 }
                             };
            categories.BgColor = Color.WhiteSmoke;

            chart.CategoriesList.Add(categories);
            chart.ClickURL.Url = "http://localhost/Gantt.aspx";
            chart.DefaultAnimation = false;

            Console.WriteLine("Gantt Chart with categories");

            ValidateChartXml(chart);
        }
 private static void FillCategories(CategoriesElement categories, double min, double max, double step) {
     for(var x = min; x <= max; x += step) {
         categories.Add(new CategoryElement
                        {
                            Label = x.ToString("#0.0")
                        });
     }
 }
 private static void FillCategories(CategoriesElement categories, double min, double max, double step)
 {
     for (var x = min; x <= max; x += step)
     {
         categories.Add(new CategoryElement
         {
             Label = x.ToString("#0.0")
         });
     }
 }
Beispiel #4
0
        /// <summary>
        /// 지정한 기간의 컬렉션에 대해 라벨 발급 함수를 통해 새로운 <see cref="CategoryElement"/> 들을 생성하여, 컬렉션으로 반환한다.
        /// </summary>
        /// <param name="periods"></param>
        /// <param name="labelFunc"></param>
        /// <returns></returns>
        public static CategoriesElement CreateCategories(IEnumerable<ITimePeriod> periods, Func<ITimePeriod, string> labelFunc) {
            var categories = new CategoriesElement();

            foreach(var period in periods) {
                var category = new CategoryElement
                               {
                                   Start = period.Start,
                                   End = period.End
                               };

                if(labelFunc != null)
                    category.ItemAttr.Label = labelFunc(period);

                categories.Add(category);
            }

            return categories;
        }
Beispiel #5
0
        public void MultipleCategories() {
            var chart = CreateSampleChart("Multiple Categories Gantt Chart");

            var quaterCategories = new CategoriesElement();

            // 분기별 Category를 만든다.
            foreach(var quarterRange in ProjectPeriod.ForEachQuarters()) {
                var category = new CategoryElement
                               {
                                   Start = quarterRange.Start,
                                   End = quarterRange.End,
                                   ItemAttr = { Label = quarterRange.Start.GetQuarter().ToString() }
                               };

                quaterCategories.Add(category);
            }

            chart.CategoriesList.Insert(0, quaterCategories);

            ValidateChartXml(chart);
        }
Beispiel #6
0
        private static GanttChart CreateSampleChart(string caption) {
            var chart = new GanttChart
                        {
                            Caption = caption,
                            SubCaption = "소제목입니다.",
                            Palette = 2,
                        };

            var categories = new CategoriesElement
                             {
                                 FontAttr =
                                 {
                                     Font = "Tahoma",
                                     FontColor = Color.FromArgb(0, 0x03, 0x72, 0xAB),
                                     FontSize = 13.ToString(),
                                     IsBold = true,
                                     IsItalic = true,
                                     IsUnderline = true
                                 },
                                 BgColor = Color.White,
                                 Align = FusionTextAlign.Center,
                                 VAlign = FusionVerticalAlign.Middle
                             };


            foreach(var month in ProjectPeriod.ForEachMonths()) {
                var category = new CategoryElement
                               {
                                   Start = month.Start,
                                   End = month.End,
                               };
                category.ItemAttr.Label = month.Start.Month.ToString();
                category.ItemAttr.FontAttr.Font = "Tahoma";
                category.ItemAttr.FontAttr.FontColor = Color.FromArgb(0, 0x03, 0x72, 0xAB);
                category.ItemAttr.FontAttr.FontSize = 13.ToString();
                category.ItemAttr.FontAttr.IsBold = true;
                category.ItemAttr.FontAttr.IsItalic = true;
                category.ItemAttr.FontAttr.IsUnderline = true;
                category.ItemAttr.BgColor = Color.White;
                category.ItemAttr.Align = FusionTextAlign.Center;
                category.ItemAttr.VAlign = FusionVerticalAlign.Middle;

                categories.Add(category);
            }

            chart.CategoriesList.Add(categories);

            chart.Processes.FontAttr.FontSize = 12.ToString();
            chart.Processes.FontAttr.IsBold = true;
            chart.Processes.Align = FusionTextAlign.Right;
            chart.Processes.HeaderText = "What to do?";
            chart.Processes.HeaderAttr.FontAttr.FontSize = 18.ToString();
            chart.Processes.HeaderAttr.Align = FusionTextAlign.Right;
            chart.Processes.HeaderAttr.VAlign = FusionVerticalAlign.Bottom;

            var procId = 0;
            foreach(string label in ProcessLabels) {
                var process = new ProcessElement("Process" + procId++.ToString())
                              {
                                  ItemAttr =
                                  {
                                      Label = label,
                                      FontAttr =
                                      {
                                          Font = "Tahoma",
                                          FontColor = Color.FromArgb(0, 0x03, 0x72, 0xAB),
                                          FontSize = 13.ToString(),
                                          IsBold = true,
                                          IsItalic = true,
                                          IsUnderline = true
                                      },
                                      BgColor = Color.White,
                                      Align = FusionTextAlign.Center,
                                      VAlign = FusionVerticalAlign.Middle
                                  }
                              };

                chart.Processes.Add(process);
            }

            procId = 0;
            var taskId = 0;
            foreach(var taskPeriod in TaskPeriods) {
                var task = new TaskElement
                           {
                               Start = taskPeriod.Start,
                               End = taskPeriod.End,
                               Id = "Task" + taskId++,
                               ProcessId = "Process" + procId++,
                               Color = Color.BlueViolet,
                               ShowLabel = true,
                               Animation = true,
                               BorderThickness = 1
                           };

                // chart.Tasks.TaskElements.Add(task);
                chart.Tasks.Add(task);
            }

            return chart;
        }
Beispiel #7
0
        /// <summary>
        /// 지정한 기간의 컬렉션에 대해 라벨 발급 함수를 통해 새로운 <see cref="CategoryElement"/> 들을 생성하여, 컬렉션으로 반환한다.
        /// </summary>
        /// <param name="periods"></param>
        /// <param name="labelFunc"></param>
        /// <returns></returns>
        public static CategoriesElement CreateCategoriesAsParallel(IEnumerable<ITimePeriod> periods, Func<ITimePeriod, string> labelFunc) {
            var categories = new CategoriesElement();

            periods
                .AsParallel()
                .AsOrdered()
                .Select(period => {
                            var category = new CategoryElement
                                           {
                                               Start = period.Start,
                                               End = period.End
                                           };

                            if(labelFunc != null)
                                category.ItemAttr.Label = labelFunc(period);

                            return category;
                        })
                .RunEach(category => categories.Add(category));

            return categories;
        }