/// <summary>
        /// Initializes a new instance of the <see cref="CalendarStateConfigurationChangeEventArgs" /> class.
        /// </summary>
        /// <param name="calendarStateConfiguration">The calendar state configuration model.</param>
        /// <param name="propertyName">Name of the property.</param>
        public CalendarStateConfigurationChangeEventArgs(CalendarStateConfiguration calendarStateConfiguration, string propertyName)
            : base(propertyName)
        {
            Argument.IsNotNull("calendarStateConfiguration", calendarStateConfiguration);

            Model = calendarStateConfiguration;
        }
Пример #2
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;
        }