Ejemplo n.º 1
0
 public void EnsureStyleAssigned()
 {
     if (Style == null && Drawing != null)
     {
         Style = Drawing.StyleManager.AssignDefaultStyle(this);
     }
 }
Ejemplo n.º 2
0
        public static void Apply(this IFigure figure, FrameworkElement element, IFigureStyle figureStyle)
        {
            var wpfStyle = figureStyle.GetWpfStyle(figure);

            element.Apply(wpfStyle);
            figureStyle.OnApplied(figure, element);
        }
Ejemplo n.º 3
0
        public IFigureStyle CreateNewStyle(Drawing drawing, IFigureStyle style)
        {
            var newStyle = style.Clone();

            Actions.AddItem(drawing.ActionManager, list, newStyle);
            return(newStyle);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 1. Get the type of the style being displayed
        /// 2. Get the list of all other styles like this one
        /// 3. Fill all the styles in the list
        /// </summary>
        public override void FillList()
        {
            IFigureStyle style = Value.GetValue <IFigureStyle>();

            if (style == null && Value is CompositeValueProvider)
            {
                style = (Value as CompositeValueProvider).InnerList[0].GetValue <IFigureStyle>();
            }

            if (style == null)
            {
                base.FillList();
                return;
            }

            IEnumerable <IFigureStyle> allStyles = style.GetCompatibleStyles();

            IFigure figure = Value.Parent as IFigure;

            if (figure != null && style != null)
            {
                allStyles = style.StyleManager.GetSupportedStyles(figure);
            }

            Items = allStyles.Select(s => GetGlyph(s)).ToList();
            base.FillList();
        }
Ejemplo n.º 5
0
 private void OnStyleAdded(IFigureStyle style)
 {
     if (style.Name.IsEmpty())
     {
         style.Name = GenerateUniqueName();
     }
     style.StyleManager = this;
 }
Ejemplo n.º 6
0
        private FrameworkElement GetGlyph(IFigureStyle s)
        {
            var content = s.GetSampleGlyph();

            content.Margin = new Thickness(10);
            var result = new Grid();

            result.Children.Add(content);
            result.Tag = s;
            return(result);
        }
Ejemplo n.º 7
0
        protected override ValidationResult Validate(object value)
        {
            IFigureStyle style  = (value as FrameworkElement).Tag as IFigureStyle;
            var          result = new ValidationResult();

            if (style != null)
            {
                result.IsValid = true;
                result.Value   = style;
            }
            return(result);
        }
Ejemplo n.º 8
0
        public IFigureStyle FindExistingOrAddNew(IFigureStyle style)
        {
            var found = list
                        .Where(s => s.GetSignature() == style.GetSignature())
                        .FirstOrDefault();

            if (found != null)
            {
                return(found);
            }

            Actions.AddItem(Drawing.ActionManager, list, style);
            return(style);
        }
Ejemplo n.º 9
0
 public virtual void Remove(IFigureStyle style)
 {
     if (list.Contains(style) && list.IndexOf(style) >= numDefaultStyles)
     {
         var transaction = Transaction.Create(Drawing.ActionManager, false);
         foreach (var fig in Drawing.Figures)
         {
             if (fig.Style == style)
             {
                 Actions.SetProperty(Drawing.ActionManager, new PropertyValue("Style", fig), AssignDefaultStyle(fig));
             }
         }
         Actions.RemoveItem(Drawing.ActionManager, list, style);
         transaction.Commit();
     }
 }
Ejemplo n.º 10
0
        public virtual void WriteStyle(IFigureStyle style, XmlWriter writer)
        {
            writer.WriteStartElement(GetStyleElementName(style));
            var values = valueDiscovery.GetValues(style);

            foreach (var value in values)
            {
                var serialized = MEFHost.Instance.SerializationService.Write(value);
                if (serialized != null)
                {
                    writer.WriteAttributeString(value.Name, serialized.ToString());
                }
            }

            writer.WriteEndElement();
        }
Ejemplo n.º 11
0
 public virtual void Add(IFigureStyle style)
 {
     list.Add(style);
 }
Ejemplo n.º 12
0
 public override void ReadXml(XElement element)
 {
     // Do not use CompositeFigure.ReadXml() because there are no children to read. Children are created by constructor.
     Visible = element.ReadBool("Visible", true);
     Locked = element.ReadBool("Locked", false);
     IsHitTestVisible = element.ReadBool("IsHitTestVisible", true);
     var styleAttribute = element.Attribute("Style");
     if (styleAttribute != null
         && Drawing != null
         && Drawing.StyleManager != null)
     {
         var style = Drawing.StyleManager[styleAttribute.Value];
         if (style != null)
         {
             this.Arrow.Style = style;
         }
     }
 }
Ejemplo n.º 13
0
 public static Style GetWpfStyle(this IFigureStyle style)
 {
     return(style.GetWpfStyle(null));
 }
Ejemplo n.º 14
0
 public Dialog(FreePointCreator parent)
 {
     this.parent = parent;
     this.style = parent.Drawing.StyleManager.GetStyles<PointStyle>().FirstOrDefault();
 }
Ejemplo n.º 15
0
 string GetStyleElementName(IFigureStyle style)
 {
     return style.GetType().Name;
 }
Ejemplo n.º 16
0
 string GetStyleElementName(IFigureStyle style)
 {
     return(style.GetType().Name);
 }
Ejemplo n.º 17
0
 public static void Apply(this IFigure figure, FrameworkElement element, IFigureStyle figureStyle)
 {
     var wpfStyle = figureStyle.GetWpfStyle(figure);
     element.Apply(wpfStyle);
     figureStyle.OnApplied(figure, element);
 }
Ejemplo n.º 18
0
        public virtual void WriteStyle(IFigureStyle style, XmlWriter writer)
        {
            writer.WriteStartElement(GetStyleElementName(style));
            var values = valueDiscovery.GetValues(style);
            foreach (var value in values)
            {
                var serialized = MEFHost.Instance.SerializationService.Write(value);
                if (serialized != null)
                {
                    writer.WriteAttributeString(value.Name, serialized.ToString());
                }
            }

            writer.WriteEndElement();
        }
Ejemplo n.º 19
0
        public virtual void AddDefaultStyles()
        {
            var freePointStyle = new PointStyle()
            {
                Fill = new SolidColorBrush(Color.FromArgb(255, 255, 255, 100))
            };
            var pointOnFigureStyle = new PointStyle()
            {
                Fill = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0))
            };
            var dependentPointStyle = new PointStyle()
            {
                Name = "DependentPointStyle",
                Fill = new SolidColorBrush(Color.FromArgb(200, 192, 192, 192))
            };
            var lineStyle  = new LineStyle();
            var lineStyle2 = new LineStyle()
            {
                Name  = "OtherLine",
                Color = Color.FromArgb(200, 0, 0, 255)
            };
            var shapeWithLineStyle = new ShapeStyle();
            var shapeStyle         = new ShapeStyle()
            {
                Color = Colors.Transparent
            };
            var shapeStyle2 = new ShapeStyle()
            {
                Name  = "OtherShape",
                Color = Colors.Transparent,
                Fill  = new SolidColorBrush(Color.FromArgb(100, 200, 255, 200))
            };
            var hyperLinkStyle = new TextStyle()
            {
                FontSize   = 18,
                FontFamily = new FontFamily("Segoe UI")
            };
            var textStyle = new TextStyle()
            {
                FontSize   = 18,
                FontFamily = new FontFamily("Segoe UI")
            };
            var headerStyle = new TextStyle()
            {
                FontSize   = 40,
                FontFamily = new FontFamily("Segoe UI")
            };

            var newStyles = new IFigureStyle[]
            {
                freePointStyle,
                pointOnFigureStyle,
                dependentPointStyle,
                lineStyle,
                lineStyle2,
                shapeStyle,
                shapeStyle2,
                shapeWithLineStyle,
                textStyle,
                headerStyle,
                hyperLinkStyle,
            };

            list.AddRange(newStyles);

            numDefaultStyles = newStyles.Length;
        }