Пример #1
0
 private void repository_StyleDeleted(object sender, RepositoryStyleEventArgs e)
 {
     ToolCache.NotifyStyleChanged(e.Style);
 }
Пример #2
0
        // Notify ToolCache that a style has changed
        // Invalidate all (loaded) shapes using the changed style
        private void repository_StyleUpdated(object sender, RepositoryStyleEventArgs e)
        {
            IStyle changedStyle = e.Style;
            Design design       = null;

            foreach (Design d in repository.GetDesigns())
            {
                if (d.ContainsStyle(changedStyle))
                {
                    design = d;
                    break;
                }
            }
            // Update Toolcache and PreviewStyle
            if (design != null)
            {
                if (changedStyle is CapStyle)
                {
                    DoNotifyStyleChanged(design.CapStyles, (CapStyle)changedStyle);
                    design.CapStyles.SetPreviewStyle((CapStyle)changedStyle, design.CreatePreviewStyle((ICapStyle)changedStyle));
                }
                else if (changedStyle is CharacterStyle)
                {
                    DoNotifyStyleChanged(design.CharacterStyles, (CharacterStyle)changedStyle);
                    design.CharacterStyles.SetPreviewStyle((CharacterStyle)changedStyle, design.CreatePreviewStyle((ICharacterStyle)changedStyle));
                }
                else if (changedStyle is ColorStyle)
                {
                    DoNotifyStyleChanged(design.ColorStyles, (ColorStyle)changedStyle);
                    design.ColorStyles.SetPreviewStyle((ColorStyle)changedStyle, design.CreatePreviewStyle((IColorStyle)changedStyle));
                }
                else if (changedStyle is FillStyle)
                {
                    DoNotifyStyleChanged(design.FillStyles, (FillStyle)changedStyle);
                    design.FillStyles.SetPreviewStyle((FillStyle)changedStyle, design.CreatePreviewStyle((IFillStyle)changedStyle));
                }
                else if (changedStyle is LineStyle)
                {
                    DoNotifyStyleChanged(design.LineStyles, (LineStyle)changedStyle);
                    design.LineStyles.SetPreviewStyle((LineStyle)changedStyle, design.CreatePreviewStyle((ILineStyle)changedStyle));
                }
                else if (changedStyle is ParagraphStyle)
                {
                    DoNotifyStyleChanged(design.ParagraphStyles, (ParagraphStyle)changedStyle);
                    design.ParagraphStyles.SetPreviewStyle((ParagraphStyle)changedStyle, design.CreatePreviewStyle((IParagraphStyle)changedStyle));
                }
            }

            // If the style is contained in the current design, notify all shapes that the style has changed
            if (design == Design)
            {
                foreach (Template template in repository.GetTemplates())
                {
                    template.Shape.NotifyStyleChanged(changedStyle);
                }
                foreach (Diagram diagram in repository.GetDiagrams())
                {
                    foreach (Shape shape in diagram.Shapes)
                    {
                        shape.NotifyStyleChanged(changedStyle);
                    }
                }
            }
        }