コード例 #1
0
ファイル: RanttDataSet.cs プロジェクト: Orcomp/Rantt.Domain
        /// <summary>
        /// The repopulate resource configuration.
        /// </summary>
        /// <param name="ranttConfiguration">
        /// The gantt configuration.
        /// </param>
        /// <param name="currentResourceConfigurationSource">
        /// The current resource configuration source.
        /// </param>
        public void RepopulateResourceConfiguration(
            RanttConfiguration ranttConfiguration,
            Dictionary <string, ResourceConfiguration> currentResourceConfigurationSource)
        {
            // Group allOperations by resource
            var operationsGroupedByResource =
                Operations
                .GroupBy(x => x.Resource)
                .ToDictionary(
                    x => x.Key,
                    x => x.OrderBy(y => y.StartTime).ToList());

            foreach (var resourceName in operationsGroupedByResource.Keys)
            {
                if (!operationsGroupedByResource.ContainsKey(resourceName))
                {
                    continue;
                }

                if (!currentResourceConfigurationSource.ContainsKey(resourceName))
                {
                    ResourceConfiguration resourceConfiguration = new ResourceConfiguration(resourceName, currentResourceConfigurationSource.Count + 1, true);
                    currentResourceConfigurationSource.Add(
                        resourceName,
                        resourceConfiguration);

                    if (currentResourceConfigurationSource == ranttConfiguration.ResourceConfigurations)
                    {
                        resourceConfiguration.PropertyChanged += (sender, args) => ranttConfiguration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
                    }
                }
            }
        }
コード例 #2
0
ファイル: RanttDataSet.cs プロジェクト: Orcomp/Rantt.Domain
        /// <summary>
        /// The initialization gantt configuration.
        /// </summary>
        /// <param name="ranttConfiguration">
        /// The gantt configuration.
        /// </param>
        /// <param name="currentResourceConfigurationSource">
        /// The current resource configuration source.
        /// </param>
        /// <param name="visibleByDefaultAttributes">
        /// The visible by default attributes.
        /// </param>
        public void InitRanttConfiguration(
            RanttConfiguration ranttConfiguration,
            Dictionary <string, ResourceConfiguration> currentResourceConfigurationSource,
            HashSet <string> visibleByDefaultAttributes = null)
        {
            ranttConfiguration.IsInitializing = true;

            RepopulateResourceConfiguration(ranttConfiguration, currentResourceConfigurationSource);

            // add calendar period configuration if it doesn't exist yet
            CalendarPeriods.Select(x => x.CalendarState)
            .Distinct()
            .Where(x => !ranttConfiguration.CalendarStateConfigurations.ContainsKey(x))
            .ToList()
            .ForEach(x => ranttConfiguration.CalendarStateConfigurations.Add(x, new CalendarStateConfiguration(x, Color.FromArgb(0xFF, 0xF5, 0xF5, 0xF5))));

            // add attribute configuration if it doesn't exist
            foreach (var operation in Operations)
            {
                foreach (string attributeName in operation.Attributes.Names)
                {
                    if (!ranttConfiguration.AttributeConfigurations.ContainsKey(attributeName))
                    {
                        int pos = ranttConfiguration.AttributeConfigurations.Count + 1;

                        ranttConfiguration.AttributeConfigurations.Add(
                            attributeName,
                            new AttributeConfiguration(attributeName, typeof(string).ToString(), string.Empty, string.Empty,
                                                       true,
                                                       true,
                                                       true,
                                                       false,
                                                       visibleByDefaultAttributes != null && visibleByDefaultAttributes.Contains(attributeName),
                                                       pos,
                                                       pos,
                                                       pos,
                                                       pos,
                                                       true)
                        {
                            IsInDataRow          = (attributeName == "Quantity"),
                            DataRowPosition      = pos,
                            DataRowNumericFormat = "g5"
                        });
                    }

                    string attrValue = operation.Attributes[attributeName];
                    ranttConfiguration.AttributeConfigurations[attributeName].InitializeAttributeValue(attrValue);
                }
            }

            ranttConfiguration.IsInitializing = false;
        }
コード例 #3
0
        /// <summary>
        /// Loads raw configuration data.
        /// </summary>
        /// <param name="configuration">
        /// The configuration object in context of which operation is executed.
        /// </param>
        /// <param name="rawConfigurationData">
        /// The raw configuration data.
        /// </param>
        public static void LoadRawConfiguration(this RanttConfiguration configuration, RawConfigurationData rawConfigurationData)
        {
            configuration.IsInitializing = true;
            configuration.AvailableWorkspaces.Clear();
            configuration.ResourceConfigurations.Clear();
            configuration.AttributeConfigurations.Clear();
            configuration.CalendarStateConfigurations.Clear();

            foreach (RawResourceConfiguration rawResource in rawConfigurationData.ResourceConfigurations)
            {
                ResourceConfiguration resourceConfiguration = new ResourceConfiguration(rawResource.Name, rawResource.Position, rawResource.IsVisible);
                configuration.ResourceConfigurations.Add(resourceConfiguration.Name, resourceConfiguration);
                resourceConfiguration.PropertyChanged += (sender, args) => configuration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
            }

            foreach (RawBaseAttributeConfiguration rawBaseAttributeConfiguration in rawConfigurationData.BaseAttributeConfigurations)
            {
                AttributeConfiguration attributeConfiguration = rawBaseAttributeConfiguration.GetAttributeConfiguration();
                configuration.AttributeConfigurations.Add(attributeConfiguration.Name, attributeConfiguration);


                if (rawConfigurationData.ExtendedAttributeConfigurations.ContainsKey(attributeConfiguration.Name))
                {
                    foreach (RawAttributeExtendedConfiguration extendedConfiguration in rawConfigurationData.ExtendedAttributeConfigurations[attributeConfiguration.Name])
                    {
                        attributeConfiguration.InitializeAttributeValue(extendedConfiguration.Value);
                        attributeConfiguration.SetAttributeValueColor(extendedConfiguration.Value, CustomColorConverter.StringToColor(extendedConfiguration.Color));
                        attributeConfiguration.SetAttributeValueVisibility(extendedConfiguration.Value, extendedConfiguration.Visibility);
                    }
                }

                attributeConfiguration.PropertyChanged += (sender, args) => configuration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
            }

            foreach (RawCalendarStateConfiguration rawCalendarStateConfiguration in rawConfigurationData.CalendarStateConfigurations)
            {
                CalendarStateConfiguration calendarStateConfiguration = new CalendarStateConfiguration(rawCalendarStateConfiguration.Name, CustomColorConverter.StringToColor(rawCalendarStateConfiguration.Color))
                {
                    IsVisible = rawCalendarStateConfiguration.IsVisible
                };
                calendarStateConfiguration.PropertyChanged += (sender, args) => configuration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
            }

            RawWorkspaceConfiguration rawWorkspace = rawConfigurationData.CurrentWorkspace;

            configuration.CurrentWorkspace = rawWorkspace == null ? null :
                                             new WorkspaceConfiguration
            {
                Name = rawWorkspace.Name,
                GroupByAttributeName    = rawWorkspace.GroupByAttributeName,
                HighlightPast           = rawWorkspace.HighlightPast,
                AreTooltipsEnabled      = rawWorkspace.AreTooltipsEnabled,
                IsDataRowEnabled        = rawWorkspace.IsDataRowEnabled,
                IsPlotRowEnabled        = rawWorkspace.IsPlotRowEnabled,
                OperationColorAttribute = rawWorkspace.OperationColorAttribute,
                PlotType                = rawWorkspace.PlotType,
                PlotInterval            = rawWorkspace.PlotInterval,
                RelativeStartTime       = rawWorkspace.RelativeStartTime,
                SelectedAttributes      = rawWorkspace.SelectedAttributes,
                ShowCurrentTime         = rawWorkspace.ShowCurrentTime,
                ShowHorizontalGridLines = rawWorkspace.ShowHorizontalGridLines,
                ShowVerticalGridLines   = rawWorkspace.ShowVerticalGridLines,
                UseRelativeTime         = rawWorkspace.UseRelativeTime,
                RelativeDuration        = rawWorkspace.RelativeDuration,
                ShowCountData           = rawWorkspace.ShowCountData,
                ShowDurationData        = rawWorkspace.ShowDurationData
            };

            foreach (string availableWorkspace in rawConfigurationData.AvailableWorkspaces)
            {
                if ((configuration.CurrentWorkspace != null) &&
                    (configuration.CurrentWorkspace.Name == availableWorkspace))
                {
                    configuration.AvailableWorkspaces.Add(availableWorkspace, configuration.CurrentWorkspace);
                }
                else
                {
                    configuration.AvailableWorkspaces.Add(availableWorkspace, null);
                }
            }

            configuration.IsInitializing = false;
        }
コード例 #4
0
        /// <summary>
        /// Gets raw configuration data for given rantt configuration.
        /// </summary>
        /// <param name="configuration">The rantt configuration.</param>
        /// <returns>The raw configuration data.</returns>
        public static RawConfigurationData GetRawConfigurationData(this RanttConfiguration configuration)
        {
            RawConfigurationData result = new RawConfigurationData
            {
                ResourceConfigurations          = new List <RawResourceConfiguration>(),
                BaseAttributeConfigurations     = new List <RawBaseAttributeConfiguration>(),
                ExtendedAttributeConfigurations = new Dictionary <string, List <RawAttributeExtendedConfiguration> >(),
                CalendarStateConfigurations     = new List <RawCalendarStateConfiguration>(),
                AvailableWorkspaces             = configuration.AvailableWorkspaces.Keys.ToList()
            };

            foreach (var resourceConfiguration in configuration.ResourceConfigurations.Values)
            {
                result.ResourceConfigurations.Add(new RawResourceConfiguration {
                    IsVisible = resourceConfiguration.IsVisible, Name = resourceConfiguration.Name, Position = resourceConfiguration.Position
                });
            }

            foreach (AttributeConfiguration attributeConfiguration in configuration.AttributeConfigurations.Values)
            {
                result.BaseAttributeConfigurations.Add(attributeConfiguration.GetRawBaseAttributeConfiguration());
                List <RawAttributeExtendedConfiguration> extendedConfigurations = attributeConfiguration.GetRawExtendedAttributeConfiguration();
                if (extendedConfigurations.Count > 0)
                {
                    result.ExtendedAttributeConfigurations.Add(attributeConfiguration.Name, extendedConfigurations);
                }
            }

            foreach (CalendarStateConfiguration calendarStateConfiguration in  configuration.CalendarStateConfigurations.Values)
            {
                result.CalendarStateConfigurations.Add(new RawCalendarStateConfiguration {
                    Color = calendarStateConfiguration.CalendarStateColor, IsVisible = calendarStateConfiguration.IsVisible, Name = calendarStateConfiguration.Name
                });
            }

            if (configuration.CurrentWorkspace != null)
            {
                result.CurrentWorkspace = new RawWorkspaceConfiguration
                {
                    Name = configuration.CurrentWorkspace.Name,
                    GroupByAttributeName    = configuration.CurrentWorkspace.GroupByAttributeName,
                    HighlightPast           = configuration.CurrentWorkspace.HighlightPast,
                    AreTooltipsEnabled      = configuration.CurrentWorkspace.AreTooltipsEnabled,
                    IsDataRowEnabled        = configuration.CurrentWorkspace.IsDataRowEnabled,
                    IsPlotRowEnabled        = configuration.CurrentWorkspace.IsPlotRowEnabled,
                    OperationColorAttribute = configuration.CurrentWorkspace.OperationColorAttribute,
                    PlotType                = configuration.CurrentWorkspace.PlotType,
                    PlotInterval            = configuration.CurrentWorkspace.PlotInterval,
                    RelativeStartTime       = configuration.CurrentWorkspace.RelativeStartTime,
                    SelectedAttributes      = configuration.CurrentWorkspace.SelectedAttributes,
                    ShowCurrentTime         = configuration.CurrentWorkspace.ShowCurrentTime,
                    ShowHorizontalGridLines = configuration.CurrentWorkspace.ShowHorizontalGridLines,
                    ShowVerticalGridLines   = configuration.CurrentWorkspace.ShowVerticalGridLines,
                    UseRelativeTime         = configuration.CurrentWorkspace.UseRelativeTime,
                    RelativeDuration        = configuration.CurrentWorkspace.RelativeDuration,
                    ShowCountData           = configuration.CurrentWorkspace.ShowCountData,
                    ShowDurationData        = configuration.CurrentWorkspace.ShowDurationData
                };
            }

            return(result);
        }