예제 #1
0
        public static void SetBackgroundGradient(
            StyleSet classStyleSet,
            Color backgroundGradientColor,
            Color backgroundSelectedGradientColor,
            Color backgroundSelectedInactiveGradientColor,
            Diagram diagram,
            string surfaceTitle)
        {
            #region Set background gradient style and shape attributes

            // Fill brush settings for background (Start gradient color).
            BrushSettings backgroundBrush = new BrushSettings();
            backgroundBrush.Color = backgroundGradientColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackground, backgroundBrush);
            // Selected state
            backgroundBrush       = new BrushSettings();
            backgroundBrush.Color = backgroundSelectedGradientColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelected, backgroundBrush);
            // SelectedInactive state
            backgroundBrush       = new BrushSettings();
            backgroundBrush.Color = backgroundSelectedInactiveGradientColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelectedInactive, backgroundBrush);

            // We should find a "Background" field created when we set the
            // HasBackgroundGradient property to "true"
            AreaField background = diagram.FindShapeField("Background") as AreaField;
            if (background != null)
            {
                background.DefaultReflectParentSelectedState = true;
                //background.AnchoringBehavior.SetBottomAnchor(AnchoringBehavior.Edge.Bottom, diagram.MaximumSize.Height / 2);
            }

            #endregion

            #region Set Diagram font and text attributes

            // Custom font styles for diagram title
            FontSettings fontSettings;
            fontSettings       = new FontSettings();
            fontSettings.Style = FontStyle.Bold;
            fontSettings.Size  = 9 / 72.0F;
            classStyleSet.OverrideFont(DiagramFonts.ShapeTitle, fontSettings);

            // Create a text field for the Diagram Title
            TextField textField = new TextField("DiagramTitle");
            textField.DefaultText       = surfaceTitle;
            textField.DefaultVisibility = true;
            textField.DefaultAutoSize   = true;
            textField.DefaultFontId     = DiagramFonts.ShapeTitle;
            textField.AnchoringBehavior.SetLeftAnchor(AnchoringBehavior.Edge.Left, 0.33);
            textField.AnchoringBehavior.SetTopAnchor(AnchoringBehavior.Edge.Top, 0.07);

            diagram.ShapeFields.Add(textField);

            #endregion
        }
예제 #2
0
        public static void SetBackgroundGradient(
            StyleSet classStyleSet,
            Color backgroundGradientColor, 
            Color backgroundSelectedGradientColor, 
            Color backgroundSelectedInactiveGradientColor,
            Diagram diagram,
            string surfaceTitle)
        {
            #region Set background gradient style and shape attributes

            // Fill brush settings for background (Start gradient color).
            BrushSettings backgroundBrush = new BrushSettings();
            backgroundBrush.Color = backgroundGradientColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackground, backgroundBrush);
            // Selected state
            backgroundBrush = new BrushSettings();
            backgroundBrush.Color = backgroundSelectedGradientColor;            
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelected, backgroundBrush);
            // SelectedInactive state
            backgroundBrush = new BrushSettings();
            backgroundBrush.Color = backgroundSelectedInactiveGradientColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelectedInactive, backgroundBrush);
            
            // We should find a "Background" field created when we set the 
            // HasBackgroundGradient property to "true"
            AreaField background = diagram.FindShapeField("Background") as AreaField;
            if (background != null)
            {
                background.DefaultReflectParentSelectedState = true;
                //background.AnchoringBehavior.SetBottomAnchor(AnchoringBehavior.Edge.Bottom, diagram.MaximumSize.Height / 2);
            }

            #endregion

            #region Set Diagram font and text attributes

            // Custom font styles for diagram title
            FontSettings fontSettings;
            fontSettings = new FontSettings();
            fontSettings.Style = FontStyle.Bold;
            fontSettings.Size = 9 / 72.0F;
            classStyleSet.OverrideFont(DiagramFonts.ShapeTitle, fontSettings);

            // Create a text field for the Diagram Title
            TextField textField = new TextField("DiagramTitle");
            textField.DefaultText = surfaceTitle;
            textField.DefaultVisibility = true;
            textField.DefaultAutoSize = true;
            textField.DefaultFontId = DiagramFonts.ShapeTitle;
            textField.AnchoringBehavior.SetLeftAnchor(AnchoringBehavior.Edge.Left, 0.33);
            textField.AnchoringBehavior.SetTopAnchor(AnchoringBehavior.Edge.Top, 0.07);

            diagram.ShapeFields.Add(textField);

            #endregion
        }
예제 #3
0
        /// <summary>
        /// Override the connection line pen with a dashed pen
        /// </summary>
        /// <param name="classStyleSet"></param>
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);
            IORMFontAndColorService colorService = (this.Store as IORMToolServices).FontAndColorService;
            Color       constraintColor          = colorService.GetForeColor(ORMDesignerColor.Constraint);
            Color       activeColor = colorService.GetBackColor(ORMDesignerColor.ActiveConstraint);
            PenSettings settings    = new PenSettings();

            settings.Color     = constraintColor;
            settings.DashStyle = DashStyle.Dash;
            settings.Width     = 1.0F / 72.0F;         // 1 Point. 0 Means 1 pixel, but should only be used for non-printed items
#if VISUALSTUDIO_10_0
            classStyleSet.AddPen(CustomConnectionLinePen, DiagramPens.ConnectionLine, settings);
#else
            classStyleSet.OverridePen(DiagramPens.ConnectionLine, settings);
#endif
            settings.Color = activeColor;
            classStyleSet.AddPen(ORMDiagram.StickyBackgroundResource, DiagramPens.ConnectionLine, settings);

            settings       = new PenSettings();
            settings.Width = 1.0F / 72.0F;             // Soften the arrow a bit
            settings.Color = constraintColor;
            classStyleSet.OverridePen(DiagramPens.ConnectionLineDecorator, settings);
            settings.Color = activeColor;
            classStyleSet.AddPen(ORMDiagram.StickyForegroundResource, DiagramPens.ConnectionLineDecorator, settings);
            BrushSettings brushSettings = new BrushSettings();
            brushSettings.Color = constraintColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ConnectionLineDecorator, brushSettings);
            brushSettings.Color = activeColor;
            classStyleSet.AddBrush(ORMDiagram.StickyForegroundResource, DiagramBrushes.ConnectionLineDecorator, brushSettings);
        }
예제 #4
0
        /// <summary>
        ///     Overrides brush colors in one step.
        /// </summary>
        /// <param name="styleSet"></param>
        /// <param name="resourceId"></param>
        /// <param name="color"></param>
        public static void OverrideBrushColor(this StyleSet styleSet, StyleSetResourceId resourceId, Color color)
        {
            var settings = styleSet.GetOverriddenBrushSettings(resourceId) ?? new BrushSettings();

            settings.Color = color;
            styleSet.OverrideBrush(resourceId, settings);
        }
예제 #5
0
        /// <summary>
        /// Initializes the Resources for the background.
        /// </summary>
        private void InitializeBackgroundResources(StyleSet styleSet)
        {
            ITailoredBackgroundStyles styles = this.GetBackgroundStyles();

            Color gradientStartColor     = styles.TitleGradientFillColor;
            Color gradientEndColor       = Color.Transparent;
            Color selectedColor          = gradientStartColor;
            Color selectedInnactiveColor = gradientStartColor;

            // Title Text
            DiagramTitleField.InitializeInstanceResources(styleSet, TitleFontSize, styles.TitleTextColor);

            // Background color
            BrushSettings backgroundBrush = new BrushSettings();

            backgroundBrush.Color = styles.BackgroundFillColor;
            styleSet.OverrideBrush(DiagramBrushes.DiagramBackground, backgroundBrush);

            // Start of title gradient
            BrushSettings titleGradientBrush = new BrushSettings();

            titleGradientBrush.Color = gradientStartColor;
            styleSet.OverrideBrush(DiagramBrushes.ShapeBackground, titleGradientBrush);

            // Selected state
            titleGradientBrush       = new BrushSettings();
            titleGradientBrush.Color = selectedColor;
            styleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelected, titleGradientBrush);

            // SelectedInactive state
            titleGradientBrush       = new BrushSettings();
            titleGradientBrush.Color = selectedInnactiveColor;
            styleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelectedInactive, titleGradientBrush);

            // Find the field for the background
            AreaField background = this.FindShapeField(DiagramBackgroundShapeName) as AreaField;

            if (background != null)
            {
                background.DefaultReflectParentSelectedState = true;
                background.GradientEndingColor = gradientEndColor;

                // Constrain the height of the shape
                background.AnchoringBehavior.SetBottomAnchor(AnchoringBehavior.Edge.Bottom, (this.MaximumSize.Height - GradientHeight));
            }
        }
예제 #6
0
        /// <summary>
        /// Initializes style set resources for this shape type
        /// </summary>
        /// <param name="classStyleSet">The style set for this shape class</param>
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);

            BrushSettings brushSettings = new BrushSettings();

            brushSettings.Color = Color.FromArgb(255, 234, 197);
            classStyleSet.OverrideBrush(headerBackgroundBrushId, brushSettings);
        }
예제 #7
0
 /// <summary>
 /// Initializes the resources for all fields of this type.
 /// </summary>
 public static void InitializeInstanceResources(StyleSet classStyleSet, float fontSize, Color fontColor)
 {
     FontSettings fontSettings = new FontSettings();
     fontSettings.Style = FontStyle.Bold;
     fontSettings.Size = fontSize;
     classStyleSet.OverrideFont(DiagramFonts.ShapeTitle, fontSettings);
     BrushSettings brushSettings = new BrushSettings();
     brushSettings.Color = fontColor;
     classStyleSet.OverrideBrush(DiagramBrushes.ShapeText, brushSettings);
 }
예제 #8
0
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);

            // Fill brush settings for this shape.
            BrushSettings backgroundBrush = new BrushSettings();

            backgroundBrush.Color = Color.FromArgb(100, Color.FromKnownColor(KnownColor.Gray));
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackground, backgroundBrush);
        }
예제 #9
0
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);
            classStyleSet.AddBrush(m_brushId, m_brushId, new BrushSettings()
            {
                Color = Color.PapayaWhip
            });

            FontSettings fontSettings = new FontSettings();

            fontSettings.Style = System.Drawing.FontStyle.Bold;
            fontSettings.Size  = 8 / 72.0F;
            classStyleSet.AddFont(m_FontId, DiagramFonts.ShapeText, fontSettings);

            // set text color for fields
            BrushSettings textBrush = new BrushSettings();

            textBrush.Color = Color.FromKnownColor(KnownColor.Maroon);
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeText, textBrush);
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeTextSelected, textBrush);
        }
예제 #10
0
        /// <summary>
        /// Initializes the resources for all fields of this type.
        /// </summary>
        public static void InitializeInstanceResources(StyleSet classStyleSet, float fontSize, Color fontColor)
        {
            FontSettings fontSettings = new FontSettings();

            fontSettings.Style = FontStyle.Bold;
            fontSettings.Size  = fontSize;
            classStyleSet.OverrideFont(DiagramFonts.ShapeTitle, fontSettings);
            BrushSettings brushSettings = new BrushSettings();

            brushSettings.Color = fontColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeText, brushSettings);
        }
예제 #11
0
        /// <summary>
        /// Initialize a <see cref="StyleSet"/> for rendering deontic constraints.
        /// The style set is created in <see cref="DeonticClassStyleSet"/> and
        /// initialized here.
        /// </summary>
        /// <remarks>If a derived class does not modify additional resources in the
        /// default style set, then this method is not required and any derived deontic
        /// style set can be based on the deontic style set for this base class. However,
        /// if new resources are introduced, then the derived class should base a
        /// deontic style set on the derived class style set and reinitialize the
        /// deontic settings in that style set.</remarks>
        protected virtual void InitializeDeonticClassStyleSet(StyleSet styleSet)
        {
            IORMFontAndColorService colorService = (Store as IORMToolServices).FontAndColorService;
            Color       constraintColor          = colorService.GetForeColor(ORMDesignerColor.DeonticConstraint);
            PenSettings penSettings = new PenSettings();

            penSettings.Color = constraintColor;
            styleSet.OverridePen(DiagramPens.ShapeOutline, penSettings);
            BrushSettings brushSettings = new BrushSettings();

            brushSettings.Color = constraintColor;
            styleSet.OverrideBrush(ExternalConstraintBrush, brushSettings);
        }
예제 #12
0
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);
            classStyleSet.AddBrush(m_headFootBrushId, m_headFootBrushId, new BrushSettings()
            {
                Color = Color.Azure
            });

            FontSettings fontSettings = new FontSettings();

            fontSettings.Style = System.Drawing.FontStyle.Bold;
            fontSettings.Size  = 8 / 72.0F;
            classStyleSet.AddFont(m_FontId, DiagramFonts.ShapeText, fontSettings);

            // set text color for fields
            BrushSettings textBrush = new BrushSettings();

            textBrush.Color = Color.FromKnownColor(KnownColor.Maroon);
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeText, textBrush);
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeTextSelected, textBrush);

            VDHTMLTagShape.AssociateValueWith(this.Store, VDHTMLTag.TagNameDomainPropertyId);
            VDHTMLTagShape.AssociateValueWith(this.Store, VDHTMLTag.TagTextDomainPropertyId);
        }
예제 #13
0
        /// <summary>
        /// Change the outline pen to a thin black line for all instances
        /// of this shape.
        /// </summary>
        /// <param name="classStyleSet">The style set to modify</param>
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);
            IORMFontAndColorService colorService = (this.Store as IORMToolServices).FontAndColorService;
            Color       lineColor   = colorService.GetForeColor(ORMDesignerColor.Constraint);
            Color       stickyColor = colorService.GetBackColor(ORMDesignerColor.ActiveConstraint);
            Color       activeColor = colorService.GetBackColor(ORMDesignerColor.RolePicker);
            PenSettings penSettings = new PenSettings();

            penSettings.Width     = 1.8F / 72.0F;         // 1.8 Point. 0 Means 1 pixel, but should only be used for non-printed items
            penSettings.Alignment = PenAlignment.Center;
            penSettings.Color     = lineColor;
            classStyleSet.OverridePen(DiagramPens.ConnectionLine, penSettings);
            //Supporting Dashed subtypefacts when not primary
            penSettings.DashStyle = DashStyle.Dash;
            classStyleSet.AddPen(NonPrimaryNormalResource, DiagramPens.ConnectionLine, penSettings);
            penSettings.DashStyle = DashStyle.Solid;
            penSettings.Color     = stickyColor;
            classStyleSet.AddPen(ORMDiagram.StickyBackgroundResource, DiagramPens.ConnectionLine, penSettings);

            penSettings.DashStyle = DashStyle.Dash;
            classStyleSet.AddPen(NonPrimaryStickyResource, DiagramPens.ConnectionLine, penSettings);
            penSettings.DashStyle = DashStyle.Solid;
            penSettings.Color     = activeColor;
            classStyleSet.AddPen(ORMDiagram.ActiveBackgroundResource, DiagramPens.ConnectionLine, penSettings);

            penSettings.DashStyle = DashStyle.Dash;
            classStyleSet.AddPen(NonPrimaryActiveResource, DiagramPens.ConnectionLine, penSettings);
            penSettings.DashStyle = DashStyle.Solid;

            penSettings       = new PenSettings();
            penSettings.Width = 1.4F / 72.0F;             // Soften the arrow a bit
            penSettings.Color = lineColor;
            classStyleSet.OverridePen(DiagramPens.ConnectionLineDecorator, penSettings);
            penSettings.Color = stickyColor;
            classStyleSet.AddPen(ORMDiagram.StickyConnectionLineDecoratorResource, DiagramPens.ConnectionLineDecorator, penSettings);
            penSettings.Color = activeColor;
            classStyleSet.AddPen(ORMDiagram.ActiveConnectionLineDecoratorResource, DiagramPens.ConnectionLineDecorator, penSettings);
            BrushSettings brushSettings = new BrushSettings();

            brushSettings.Color = lineColor;
            classStyleSet.OverrideBrush(DiagramBrushes.ConnectionLineDecorator, brushSettings);
            brushSettings.Color = stickyColor;
            classStyleSet.AddBrush(ORMDiagram.StickyConnectionLineDecoratorResource, DiagramBrushes.ConnectionLineDecorator, brushSettings);
            brushSettings.Color = activeColor;
            classStyleSet.AddBrush(ORMDiagram.ActiveConnectionLineDecoratorResource, DiagramBrushes.ConnectionLineDecorator, brushSettings);
        }
예제 #14
0
        /// <summary>
        /// Initializes style set resources for this shape type
        /// </summary>
        /// <param name="classStyleSet">The style set for this shape class</param>
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);

            PenSettings settings = new PenSettings();

            settings.Color = Color.FromArgb(0xff, 0, 0, 0);
            settings.Width = 0.01f;
            classStyleSet.OverridePen(DiagramPens.ShapeOutline, settings);

            BrushSettings settings2 = new BrushSettings();

            settings2.Color = Color.FromArgb(0xff, 159, 183, 215);
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackground, settings2);

            FontSettings settings3 = new FontSettings();

            settings3.Style = FontStyle.Regular;
            settings3.Size  = 0.09722222f;
            classStyleSet.AddFont(new StyleSetResourceId(string.Empty, "ShapeTextRegular7"), DiagramFonts.ShapeText,
                                  settings3);
        }
        /// <summary>
        /// Initializes the Resources for the background.
        /// </summary>
        private void InitializeBackgroundResources(StyleSet styleSet)
        {
            ITailoredBackgroundStyles styles = this.GetBackgroundStyles();

            Color gradientStartColor = styles.TitleGradientFillColor;
            Color gradientEndColor = Color.Transparent;
            Color selectedColor = gradientStartColor;
            Color selectedInnactiveColor = gradientStartColor;

            // Title Text
            DiagramTitleField.InitializeInstanceResources(styleSet, TitleFontSize, styles.TitleTextColor);

            // Background color
            BrushSettings backgroundBrush = new BrushSettings();
            backgroundBrush.Color = styles.BackgroundFillColor;
            styleSet.OverrideBrush(DiagramBrushes.DiagramBackground, backgroundBrush);

            // Start of title gradient
            BrushSettings titleGradientBrush = new BrushSettings();
            titleGradientBrush.Color = gradientStartColor;
            styleSet.OverrideBrush(DiagramBrushes.ShapeBackground, titleGradientBrush);

            // Selected state
            titleGradientBrush = new BrushSettings();
            titleGradientBrush.Color = selectedColor;
            styleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelected, titleGradientBrush);

            // SelectedInactive state
            titleGradientBrush = new BrushSettings();
            titleGradientBrush.Color = selectedInnactiveColor;
            styleSet.OverrideBrush(DiagramBrushes.ShapeBackgroundSelectedInactive, titleGradientBrush);

            // Find the field for the background
            AreaField background = this.FindShapeField(DiagramBackgroundShapeName) as AreaField;
            if (background != null)
            {
                background.DefaultReflectParentSelectedState = true;
                background.GradientEndingColor = gradientEndColor;

                // Constrain the height of the shape
                background.AnchoringBehavior.SetBottomAnchor(AnchoringBehavior.Edge.Bottom, (this.MaximumSize.Height - GradientHeight));
            }
        }
예제 #16
0
        protected override void InitializeResources(StyleSet classStyleSet)
        {
            base.InitializeResources(classStyleSet);

            // Fill brush settings for this shape.
            BrushSettings backgroundBrush = new BrushSettings();
            backgroundBrush.Color = Color.FromArgb(100, Color.FromKnownColor(KnownColor.Gray));
            classStyleSet.OverrideBrush(DiagramBrushes.ShapeBackground, backgroundBrush);
        }
예제 #17
0
		/// <summary>
		/// Override the connection line pen with a dashed pen
		/// </summary>
		/// <param name="classStyleSet"></param>
		protected override void InitializeResources(StyleSet classStyleSet)
		{
			base.InitializeResources(classStyleSet);
			IORMFontAndColorService colorService = (this.Store as IORMToolServices).FontAndColorService;
			Color constraintColor = colorService.GetForeColor(ORMDesignerColor.Constraint);
			Color activeColor = colorService.GetBackColor(ORMDesignerColor.ActiveConstraint);
			PenSettings settings = new PenSettings();
			settings.Color = constraintColor;
			settings.DashStyle = DashStyle.Dash;
			settings.Width = 1.0F / 72.0F; // 1 Point. 0 Means 1 pixel, but should only be used for non-printed items
#if VISUALSTUDIO_10_0
			classStyleSet.AddPen(CustomConnectionLinePen, DiagramPens.ConnectionLine, settings);
#else
			classStyleSet.OverridePen(DiagramPens.ConnectionLine, settings);
#endif
			settings.Color = activeColor;
			classStyleSet.AddPen(ORMDiagram.StickyBackgroundResource, DiagramPens.ConnectionLine, settings);

			settings = new PenSettings();
			settings.Width = 1.0F / 72.0F; // Soften the arrow a bit
			settings.Color = constraintColor;
			classStyleSet.OverridePen(DiagramPens.ConnectionLineDecorator, settings);
			settings.Color = activeColor;
			classStyleSet.AddPen(ORMDiagram.StickyForegroundResource, DiagramPens.ConnectionLineDecorator, settings);
			BrushSettings brushSettings = new BrushSettings();
			brushSettings.Color = constraintColor;
			classStyleSet.OverrideBrush(DiagramBrushes.ConnectionLineDecorator, brushSettings);
			brushSettings.Color = activeColor;
			classStyleSet.AddBrush(ORMDiagram.StickyForegroundResource, DiagramBrushes.ConnectionLineDecorator, brushSettings);
		}
예제 #18
0
		/// <summary>
		/// Change the outline pen to a thin black line for all instances
		/// of this shape.
		/// </summary>
		/// <param name="classStyleSet">The style set to modify</param>
		protected override void InitializeResources(StyleSet classStyleSet)
		{
			base.InitializeResources(classStyleSet);
			PenSettings penSettings = new PenSettings();
			penSettings.Width = 1.2F / 72.0F; // 1.2 Point. 0 Means 1 pixel, but should only be used for non-printed items
			penSettings.Alignment = PenAlignment.Center;
			classStyleSet.OverridePen(DiagramPens.ConnectionLine, penSettings);
			penSettings.DashStyle = DashStyle.Dash;
			classStyleSet.AddPen(BarkerEROptionalPen, DiagramPens.ConnectionLine, penSettings);
			IORMFontAndColorService fontsAndColors = (Store as IORMToolServices).FontAndColorService;
			Color constraintForeColor = fontsAndColors.GetForeColor(ORMDesignerColor.Constraint);
			penSettings = new PenSettings();
			penSettings.Color = constraintForeColor;
			classStyleSet.OverridePen(DiagramPens.ConnectionLineDecorator, penSettings);
			BrushSettings brushSettings = new BrushSettings();
			brushSettings.Color = constraintForeColor;
			classStyleSet.OverrideBrush(DiagramBrushes.ConnectionLineDecorator, brushSettings);
		}
예제 #19
0
		/// <summary>
		/// Initialize a <see cref="StyleSet"/> for rendering deontic constraints.
		/// The style set is created in <see cref="DeonticClassStyleSet"/> and
		/// initialized here.
		/// </summary>
		/// <remarks>If a derived class does not modify additional resources in the
		/// default style set, then this method is not required and any derived deontic
		/// style set can be based on the deontic style set for this base class. However,
		/// if new resources are introduced, then the derived class should base a
		/// deontic style set on the derived class style set and reinitialize the
		/// deontic settings in that style set.</remarks>
		protected virtual void InitializeDeonticClassStyleSet(StyleSet styleSet)
		{
			IORMFontAndColorService colorService = (Store as IORMToolServices).FontAndColorService;
			Color constraintColor = colorService.GetForeColor(ORMDesignerColor.DeonticConstraint);
			PenSettings penSettings = new PenSettings();
			penSettings.Color = constraintColor;
			styleSet.OverridePen(DiagramPens.ShapeOutline, penSettings);
			BrushSettings brushSettings = new BrushSettings();
			brushSettings.Color = constraintColor;
			styleSet.OverrideBrush(ExternalConstraintBrush, brushSettings);
		}