diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs index 2602762..a5f0b29 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs @@ -76,42 +76,42 @@ namespace AIStudio.Wpf.Logical ConnectionViewModel connector1 = new ConnectionViewModel(in1.Output[0], item1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector1.ColorViewModel.FillColor.Color = Colors.Green; - connector1.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector1.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(in2.Output[0], item1.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector2.ColorViewModel.FillColor.Color = Colors.Green; - connector2.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector2.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector2); ConnectionViewModel connector3 = new ConnectionViewModel(item1.Output[0], gTGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector3.ColorViewModel.FillColor.Color = Colors.Green; - connector3.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector3.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector3); ConnectionViewModel connector4 = new ConnectionViewModel(constant.Output[0], gTGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector4.ColorViewModel.FillColor.Color = Colors.Green; - connector4.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector4.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector4); ConnectionViewModel connector5 = new ConnectionViewModel(gTGate.Output[0], sELGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector5.ColorViewModel.FillColor.Color = Colors.Green; - connector5.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector5.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector5); ConnectionViewModel connector6 = new ConnectionViewModel(in3.Output[0], sELGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector6.ColorViewModel.FillColor.Color = Colors.Green; - connector6.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector6.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector6); ConnectionViewModel connector7 = new ConnectionViewModel(in4.Output[0], sELGate.Input[2], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector7.ColorViewModel.FillColor.Color = Colors.Green; - connector7.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector7.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector7); ConnectionViewModel connector8 = new ConnectionViewModel(sELGate.Output[0], out1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector8.ColorViewModel.FillColor.Color = Colors.Green; - connector8.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; + connector8.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector8); } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs index 57413bd..42a1b20 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs @@ -447,6 +447,10 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels { PageViewModel.DiagramViewModel.SetSharp(sender as IShapeViewModel, e.PropertyName, PageViewModel.DiagramViewModel.SelectedItems); } + else if (sender is IAnimationViewModel) + { + PageViewModel.DiagramViewModel.SetAnimation(sender as IAnimationViewModel, e.PropertyName, PageViewModel.DiagramViewModel.SelectedItems); + } else if (sender is IQuickThemeViewModel) { PageViewModel.DiagramViewModel.SetQuickItem(sender as IQuickThemeViewModel, e.PropertyName, PageViewModel.DiagramViewModel.SelectedItems); diff --git a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml index 127f9f0..df785da 100644 --- a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml +++ b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml @@ -1169,7 +1169,7 @@ - + @@ -1196,7 +1196,7 @@ - + @@ -1233,14 +1233,14 @@ - + - + @@ -1268,7 +1268,7 @@ - + @@ -1276,6 +1276,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + (s); + d.AnimationPath = CopyHelper.Mapper(s.AnimationPath); return d; } public static T Mapper(IAnimationViewModel s) where T : IAnimationViewModel { var d = CopyHelper.Mapper(s); + d.AnimationPath = CopyHelper.Mapper(s.AnimationPath); return d; } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs index 948f65b..f44231f 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs @@ -419,7 +419,7 @@ namespace AIStudio.Wpf.DiagramDesigner public class AnimationItem : IAnimationViewModel { [XmlAttribute] - public LineAnimation LineAnimation + public LineAnimation Animation { get; set; } @@ -434,7 +434,7 @@ namespace AIStudio.Wpf.DiagramDesigner public Color Color { get; set; - } + } [JsonIgnore] [XmlElement("Color")] @@ -450,22 +450,24 @@ namespace AIStudio.Wpf.DiagramDesigner } } - [XmlAttribute] - public string Path + [XmlIgnore] + public ISharpPath AnimationPath { get; set; } - [XmlAttribute] - public double Width + [JsonIgnore] + [XmlElement("AnimationPath")] + public SharpPathItem XmlAnimationPath { - get; set; - } - - [XmlAttribute] - public double Height - { - get; set; + get + { + return AnimationPath as SharpPathItem; + } + set + { + AnimationPath = value; + } } public event PropertyChangedEventHandler PropertyChanged; @@ -871,13 +873,13 @@ namespace AIStudio.Wpf.DiagramDesigner } [XmlAttribute] - public ArrowPathStyle PathStyle + public PathStyle PathStyle { get; set; } [XmlAttribute] - public ArrowSizeStyle SizeStyle + public SizeStyle SizeStyle { get; set; } diff --git a/AIStudio.Wpf.DiagramDesigner/Paths/ArrowPathData.cs b/AIStudio.Wpf.DiagramDesigner/Paths/ArrowPathData.cs index c9e7243..cba7449 100644 --- a/AIStudio.Wpf.DiagramDesigner/Paths/ArrowPathData.cs +++ b/AIStudio.Wpf.DiagramDesigner/Paths/ArrowPathData.cs @@ -6,12 +6,12 @@ namespace AIStudio.Wpf.DiagramDesigner { public class ArrowPathData { - public static readonly Dictionary Arrow = new Dictionary() + public static readonly Dictionary Arrow = new Dictionary() { - { ArrowPathStyle.None, "" }, - { ArrowPathStyle.Arrow, "M 0 -5 10 0 0 5 z" }, - { ArrowPathStyle.Circle, "M 0, 0 a 5,5 0 1,0 10,0 a 5,5 0 1,0 -10,0" }, - { ArrowPathStyle.Square, "M 0 -5 10 -5 10 5 0 5 z" }, + { PathStyle.None, "" }, + { PathStyle.Arrow, "M 0 -5 10 0 0 5 z" }, + { PathStyle.Circle, "M 0, 0 a 5,5 0 1,0 10,0 a 5,5 0 1,0 -10,0" }, + { PathStyle.Square, "M 0 -5 10 -5 10 5 0 5 z" }, }; } } diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml b/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml index 7290dfb..5a96612 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml @@ -106,10 +106,10 @@ diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs b/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs index 3c4ad9d..8a04b0f 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs @@ -30,16 +30,16 @@ namespace AIStudio.Wpf.DiagramDesigner private void LineControl_Unloaded(object sender, RoutedEventArgs e) { - if (this.DataContext is ConnectionViewModel connector && connector.ColorViewModel != null) + if (this.DataContext is ConnectionViewModel connector && connector.AnimationViewModel != null) { - connector.ColorViewModel.PropertyChanged -= Connector_PropertyChanged; + connector.AnimationViewModel.PropertyChanged -= Connector_PropertyChanged; } _story?.Stop(); } private async void PathAnimation_Loaded(object sender, RoutedEventArgs e) { - if (this.DataContext is ConnectionViewModel connector && connector.ColorViewModel != null) + if (this.DataContext is ConnectionViewModel connector && connector.AnimationViewModel != null) { connector.AnimationViewModel.PropertyChanged -= Connector_PropertyChanged; connector.AnimationViewModel.PropertyChanged += Connector_PropertyChanged; @@ -52,7 +52,7 @@ namespace AIStudio.Wpf.DiagramDesigner { switch (e.PropertyName) { - case nameof(AnimationViewModel.LineAnimation): + case nameof(AnimationViewModel.Animation): case nameof(AnimationViewModel.Duration): await DoAnimation(); break; @@ -65,7 +65,7 @@ namespace AIStudio.Wpf.DiagramDesigner if (this.DataContext is ConnectionViewModel connector && connector.IsFullConnection) { await System.Threading.Tasks.Task.Delay(100); - switch (connector.AnimationViewModel.LineAnimation) + switch (connector.AnimationViewModel.Animation) { case LineAnimation.None: _story?.Stop(this); diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/AnimationViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/AnimationViewModel.cs index 5ba55a2..f424054 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/AnimationViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/AnimationViewModel.cs @@ -6,17 +6,17 @@ namespace AIStudio.Wpf.DiagramDesigner [Serializable] public class AnimationViewModel : BindableBase, IAnimationViewModel { - private LineAnimation _lineAnimation = LineAnimation.None; + private LineAnimation _animation = LineAnimation.None; [CanDo] - public LineAnimation LineAnimation + public LineAnimation Animation { get { - return _lineAnimation; + return _animation; } set { - SetProperty(ref _lineAnimation, value); + SetProperty(ref _animation, value); } } @@ -32,7 +32,7 @@ namespace AIStudio.Wpf.DiagramDesigner { SetProperty(ref _duration, value); } - } + } private Color _color = Colors.Red; [CanDo] @@ -51,45 +51,39 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private string _path = "M 10,20 A 20,20 0 1 1 50,20 A 20,20 0 1 1 10,20"; - [CanDo] - public string Path + private ISharpPath _animationPath = SharpPath.Circle; + public ISharpPath AnimationPath { get { - return _path; + return _animationPath; } set { - SetProperty(ref _path, value); + if (_animationPath != value) + { + if (_animationPath != null && _animationPath is SharpPath _sharpPath1) + { + _sharpPath1.PropertyChanged -= AnimationViewModel_PropertyChanged; + } + SetProperty(ref _animationPath, value); + if (_animationPath != null && _animationPath is SharpPath _sharpPath2) + { + _sharpPath2.PropertyChanged += AnimationViewModel_PropertyChanged; + } + } + else + { + RaisePropertyChanged(nameof(AnimationPath)); + } } } - private double _witdh; - [CanDo] - public double Width + private void AnimationViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { - get + if (sender == AnimationPath) { - return _witdh; - } - set - { - SetProperty(ref _witdh, value); - } - } - - private double _height; - [CanDo] - public double Height - { - get - { - return _height; - } - set - { - SetProperty(ref _height, value); + RaisePropertyChanged(nameof(AnimationPath)); } } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IAnimationViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IAnimationViewModel.cs index 6e7b10c..9a3ee2d 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IAnimationViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IAnimationViewModel.cs @@ -10,7 +10,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public interface IAnimationViewModel { - LineAnimation LineAnimation + LineAnimation Animation { get; set; } @@ -22,15 +22,7 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } - string Path - { - get; set; - } - double Width - { - get; set; - } - double Height + ISharpPath AnimationPath { get; set; } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/ISharpPath.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/ISharpPath.cs new file mode 100644 index 0000000..191aab6 --- /dev/null +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/ISharpPath.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AIStudio.Wpf.DiagramDesigner +{ + public interface ISharpPath + { + string Path + { + get; set; + } + + double Width + { + get; set; + } + + double Height + { + get; set; + } + + PathStyle PathStyle + { + get; set; + } + + SizeStyle SizeStyle + { + get; set; + } + } +} diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/ShapeViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/ShapeViewModel.cs index 0a673b7..45e1978 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/ShapeViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/ShapeViewModel.cs @@ -75,152 +75,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public class SharpPath : BindableBase, ISharpPath - { - public static SharpPath None { get; } = new SharpPath("", 10, 10, ArrowPathStyle.None, ArrowSizeStyle.Middle); - public static SharpPath Arrow { get; } = new SharpPath("M 0 -5 10 0 0 5 z", 10, 10, ArrowPathStyle.Arrow, ArrowSizeStyle.Middle); - public static SharpPath Circle { get; } = new SharpPath("M 0, 0 a 5,5 0 1,0 10,0 a 5,5 0 1,0 -10,0", 10, 10, ArrowPathStyle.Circle, ArrowSizeStyle.Middle); - public static SharpPath Square { get; } = new SharpPath("M 0 -5 10 -5 10 5 0 5 z", 10, 10, ArrowPathStyle.Square, ArrowSizeStyle.Middle); + - public static readonly Dictionary ArrowDictionary = new Dictionary() - { - { ArrowPathStyle.None, None.Path }, - { ArrowPathStyle.Arrow, Arrow.Path }, - { ArrowPathStyle.Circle, Circle.Path }, - { ArrowPathStyle.Square, Square.Path }, - }; - - public SharpPath() - { - - } - - public SharpPath(string path, double width, double height, ArrowPathStyle arrowPathStyle, ArrowSizeStyle arrowSizeStyle) - { - Path = path; - Width = width; - Height = height; - _pathStyle = arrowPathStyle; - _sizeStyle = arrowSizeStyle; - } - - private string _path; - [CanDo] - public string Path - { - get - { - return _path; - } - set - { - SetProperty(ref _path, value); - } - } - - private double _witdh; - [CanDo] - public double Width - { - get - { - return _witdh; - } - set - { - SetProperty(ref _witdh, value); - } - } - - private double _height; - [CanDo] - public double Height - { - get - { - return _height; - } - set - { - SetProperty(ref _height, value); - } - } - - private ArrowPathStyle _pathStyle = ArrowPathStyle.None; - [CanDo] - public ArrowPathStyle PathStyle - { - get - { - return _pathStyle; - } - set - { - if (SetProperty(ref _pathStyle, value)) - { - if (ArrowDictionary.ContainsKey(_pathStyle)) - { - Path = ArrowDictionary[_pathStyle]; - } - } - } - } - - private ArrowSizeStyle _sizeStyle = ArrowSizeStyle.Middle; - [CanDo] - public ArrowSizeStyle SizeStyle - { - get - { - return _sizeStyle; - } - set - { - if (SetProperty(ref _sizeStyle, value)) - { - Width = (double)_sizeStyle; - Height = (double)_sizeStyle; - } - } - } - - public static SharpPath NewArrow(double width, double height) - => new SharpPath(FormattableString.Invariant($"M 0 -{height / 2} {width} 0 0 {height / 2}"), width, height, ArrowPathStyle.Arrow, (ArrowSizeStyle)width); - - public static SharpPath NewCircle(double r) - => new SharpPath(FormattableString.Invariant($"M 0, 0 a {r},{r} 0 1,0 {r * 2},0 a {r},{r} 0 1,0 -{r * 2},0"), r * 2, r * 2, ArrowPathStyle.Circle, (ArrowSizeStyle)(r * 2)); - - public static SharpPath NewRectangle(double width, double height) - => new SharpPath(FormattableString.Invariant($"M 0 -{height / 2} {width} -{height / 2} {width} {height / 2} 0 {height / 2} z"), width, height, ArrowPathStyle.Square, (ArrowSizeStyle)width); - - public static SharpPath NewSquare(double size) => NewRectangle(size, size); - } - - public interface ISharpPath - { - string Path - { - get; set; - } - - double Width - { - get; set; - } - - double Height - { - get; set; - } - - ArrowPathStyle PathStyle - { - get; set; - } - - ArrowSizeStyle SizeStyle - { - get; set; - } - } + } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/SharpPath.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/SharpPath.cs new file mode 100644 index 0000000..cb0230f --- /dev/null +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/SharpPath.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; + +namespace AIStudio.Wpf.DiagramDesigner +{ + public class SharpPath : BindableBase, ISharpPath + { + public static SharpPath None { get; } = new SharpPath("", 10, 10, PathStyle.None, SizeStyle.Middle); + public static SharpPath Arrow { get; } = new SharpPath("M 0 -5 10 0 0 5 z", 10, 10, PathStyle.Arrow, SizeStyle.Middle); + public static SharpPath Circle { get; } = new SharpPath("M 0, 0 a 5,5 0 1,0 10,0 a 5,5 0 1,0 -10,0", 10, 10, PathStyle.Circle, SizeStyle.Middle); + public static SharpPath Square { get; } = new SharpPath("M 0 -5 10 -5 10 5 0 5 z", 10, 10, PathStyle.Square, SizeStyle.Middle); + + public static readonly Dictionary ArrowDictionary = new Dictionary() + { + { PathStyle.None, None.Path }, + { PathStyle.Arrow, Arrow.Path }, + { PathStyle.Circle, Circle.Path }, + { PathStyle.Square, Square.Path }, + }; + + public SharpPath() + { + + } + + public SharpPath(string path, double width, double height, PathStyle arrowPathStyle, SizeStyle arrowSizeStyle) + { + Path = path; + Width = width; + Height = height; + _pathStyle = arrowPathStyle; + _sizeStyle = arrowSizeStyle; + } + + private string _path; + [CanDo] + public string Path + { + get + { + return _path; + } + set + { + SetProperty(ref _path, value); + } + } + + private double _witdh; + [CanDo] + public double Width + { + get + { + return _witdh; + } + set + { + SetProperty(ref _witdh, value); + } + } + + private double _height; + [CanDo] + public double Height + { + get + { + return _height; + } + set + { + SetProperty(ref _height, value); + } + } + + private PathStyle _pathStyle = PathStyle.None; + [CanDo] + public PathStyle PathStyle + { + get + { + return _pathStyle; + } + set + { + if (SetProperty(ref _pathStyle, value)) + { + if (ArrowDictionary.ContainsKey(_pathStyle)) + { + Path = ArrowDictionary[_pathStyle]; + } + } + } + } + + private SizeStyle _sizeStyle = SizeStyle.Middle; + [CanDo] + public SizeStyle SizeStyle + { + get + { + return _sizeStyle; + } + set + { + if (SetProperty(ref _sizeStyle, value)) + { + Width = (double)_sizeStyle; + Height = (double)_sizeStyle; + } + } + } + + public static SharpPath NewArrow(double width, double height) + => new SharpPath(FormattableString.Invariant($"M 0 -{height / 2} {width} 0 0 {height / 2}"), width, height, PathStyle.Arrow, (SizeStyle)width); + + public static SharpPath NewCircle(double r) + => new SharpPath(FormattableString.Invariant($"M 0, 0 a {r},{r} 0 1,0 {r * 2},0 a {r},{r} 0 1,0 -{r * 2},0"), r * 2, r * 2, PathStyle.Circle, (SizeStyle)(r * 2)); + + public static SharpPath NewRectangle(double width, double height) + => new SharpPath(FormattableString.Invariant($"M 0 -{height / 2} {width} -{height / 2} {width} {height / 2} 0 {height / 2} z"), width, height, PathStyle.Square, (SizeStyle)width); + + public static SharpPath NewSquare(double size) => NewRectangle(size, size); + } +} diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs index b09b1d7..fa263c6 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs @@ -62,7 +62,7 @@ namespace AIStudio.Wpf.DiagramDesigner this.Root = root ?? sourceConnectorInfo.Root; if (sinkConnectorInfo is FullyCreatedConnectorInfo sink && sink.DataItem.ShowArrow == false) { - this.ShapeViewModel.SinkMarker = new SharpPath("", 10, 10, ArrowPathStyle.None, ArrowSizeStyle.Middle); + this.ShapeViewModel.SinkMarker = new SharpPath("", 10, 10, PathStyle.None, SizeStyle.Middle); } var routetype = TypeHelper.GetType(RouterMode); Router = routetype != null ? (System.Activator.CreateInstance(routetype) as IRouter) : new RouterNormal(); @@ -661,7 +661,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - private PointBase? GetPortPositionBasedOnAlignment(ConnectorInfoBase port, ArrowSizeStyle marker) + private PointBase? GetPortPositionBasedOnAlignment(ConnectorInfoBase port, SizeStyle marker) { if (port == null) return null; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs index ab8ea0b..a02a117 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs @@ -9,14 +9,14 @@ namespace AIStudio.Wpf.DiagramDesigner { public class LogicalConnectorInfo : FullyCreatedConnectorInfo { - public LogicalConnectorInfo(DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, bool isPortless = false, ConnectorValueType valueTypePoint = ConnectorValueType.Real) : base(dataItem, orientation, isInnerPoint, isPortless) + public LogicalConnectorInfo(DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, bool isPortless = false, ConnectorValueType connectorValueType = ConnectorValueType.Real) : base(dataItem, orientation, isInnerPoint, isPortless) { - this.ConnectorValueType = valueTypePoint; + this.ConnectorValueType = connectorValueType; } - public LogicalConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, bool isPortless = false, ConnectorValueType valueTypePoint = ConnectorValueType.Real) : base(root, dataItem, orientation, isInnerPoint, isPortless) + public LogicalConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, bool isPortless = false, ConnectorValueType connectorValueType = ConnectorValueType.Real) : base(root, dataItem, orientation, isInnerPoint, isPortless) { - this.ConnectorValueType = valueTypePoint; + this.ConnectorValueType = connectorValueType; } public LogicalConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, SelectableItemBase designer) : base(root, dataItem, designer) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs index 6b9e993..7087579 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs @@ -220,48 +220,19 @@ namespace AIStudio.Wpf.DiagramDesigner return connector; } - public List ValueTypeInput + public virtual List ValueTypeInput { get { - if (LogicalType == LogicalType.NOT) - { - return new List() { ConnectorValueType.Bool }; - } - else if (LogicalType == LogicalType.AND || LogicalType == LogicalType.OR || LogicalType == LogicalType.XOR - || LogicalType == LogicalType.SHL || LogicalType == LogicalType.SHR || LogicalType == LogicalType.ROL || LogicalType == LogicalType.ROR) - { - return new List() { ConnectorValueType.Int }; - } - else if (LogicalType == LogicalType.SEL) - { - return new List() { ConnectorValueType.Bool, ConnectorValueType.Real, ConnectorValueType.Real }; - } - else - { - return new List() { ConnectorValueType.Real }; - } + return new List() { ConnectorValueType.Real }; } } - public List ValueTypeOutput + public virtual List ValueTypeOutput { get { - if (LogicalType == LogicalType.GT || LogicalType == LogicalType.LT || LogicalType == LogicalType.GE || LogicalType == LogicalType.LE || LogicalType == LogicalType.EQ || LogicalType == LogicalType.NE - || LogicalType == LogicalType.NOT) - { - return new List() { ConnectorValueType.Bool }; - } - else if (LogicalType == LogicalType.AND || LogicalType == LogicalType.OR || LogicalType == LogicalType.XOR - || LogicalType == LogicalType.SHL || LogicalType == LogicalType.SHR || LogicalType == LogicalType.ROL || LogicalType == LogicalType.ROR) - { - return new List() { ConnectorValueType.Int }; - } - else - { - return new List() { ConnectorValueType.Real }; - } + return new List() { ConnectorValueType.Real }; } } @@ -270,6 +241,7 @@ namespace AIStudio.Wpf.DiagramDesigner GetInput(); CalculateOutput(); } + public virtual void GetInput() { foreach (var input in Input) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs index cd30b8e..62ff4e5 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs @@ -398,6 +398,8 @@ namespace AIStudio.Wpf.DiagramDesigner void SetSharp(IShapeViewModel shapeViewModel, string propertyName, List items); + void SetAnimation(IAnimationViewModel animationViewModel, string propertyName, List items); + void SetQuickItem(IQuickThemeViewModel quickThemeViewModel, string propertyName, List items); void LockAction(LockObject lockObject, string propertyName, List items); diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs index 291d410..550e1e9 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs @@ -29,12 +29,12 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector1.ColorViewModel.LineDashStyle = LineDashStyle.Dash1; - connector1.AnimationViewModel.LineAnimation = LineAnimation.DashAnimation; + connector1.AnimationViewModel.Animation = LineAnimation.DashAnimation; DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); connector2.ColorViewModel.LineDashStyle = LineDashStyle.Dash1; - connector2.AnimationViewModel.LineAnimation = LineAnimation.DashAnimation; + connector2.AnimationViewModel.Animation = LineAnimation.DashAnimation; DiagramViewModel.Add(connector2); } } diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs index d213e59..12f6fbc 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs @@ -30,12 +30,12 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector1.ColorViewModel.FillColor.Color = Colors.Red; - connector1.AnimationViewModel.LineAnimation = LineAnimation.PathAnimation; + connector1.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); connector2.ColorViewModel.FillColor.Color = Colors.Red; - connector2.AnimationViewModel.LineAnimation = LineAnimation.PathAnimation; + connector2.AnimationViewModel.Animation = LineAnimation.PathAnimation; DiagramViewModel.Add(connector2); } } diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs index c83ec2b..05ceb9e 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs @@ -73,8 +73,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); - connector1.ShapeViewModel.SourceMarker = new SharpPath("M 0 -8 L 3 -8 3 8 0 8 z M 4 -8 7 -8 7 8 4 8 z M 8 -8 16 0 8 8 z", 16, 16, ArrowPathStyle.Arrow, ArrowSizeStyle.ExtraLarge); - connector1.ShapeViewModel.SinkMarker = new SharpPath("M 0 -8 L 8 -8 4 0 8 8 0 8 4 0 z", 8, 8, ArrowPathStyle.Arrow, ArrowSizeStyle.Small); + connector1.ShapeViewModel.SourceMarker = new SharpPath("M 0 -8 L 3 -8 3 8 0 8 z M 4 -8 7 -8 7 8 4 8 z M 8 -8 16 0 8 8 z", 16, 16, PathStyle.Arrow, SizeStyle.ExtraLarge); + connector1.ShapeViewModel.SinkMarker = new SharpPath("M 0 -8 L 8 -8 4 0 8 8 0 8 4 0 z", 8, 8, PathStyle.Arrow, SizeStyle.Small); connector1.AddLabel("Custom"); DiagramViewModel.Add(connector1); } diff --git a/Extensions/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs b/Extensions/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs index 80c7338..86266fc 100644 --- a/Extensions/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs +++ b/Extensions/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Windows.Media; @@ -98,7 +99,7 @@ namespace AIStudio.Wpf.Logical.ViewModels public AddGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType) { - } + } protected override void InitNew() { @@ -120,6 +121,22 @@ namespace AIStudio.Wpf.Logical.ViewModels get; } = false; + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -159,6 +176,32 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override bool EnableAddInput + { + get; + } = true; + + public override bool EnableAddOutput + { + get; + } = false; + + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -210,17 +253,29 @@ namespace AIStudio.Wpf.Logical.ViewModels get; } = false; + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) { - double result = 0; + double result = 1; foreach (var input in Input.Values) { - if (result == 0) - { - result = 1; - } result *= input.ConnectorValue; } output.Value.ConnectorValue = result; @@ -269,6 +324,22 @@ namespace AIStudio.Wpf.Logical.ViewModels get; } = false; + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -325,6 +396,22 @@ namespace AIStudio.Wpf.Logical.ViewModels get; } = false; + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -366,6 +453,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -407,6 +510,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -448,6 +567,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -489,6 +624,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -529,6 +680,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -579,6 +746,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -620,6 +803,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -661,6 +860,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -702,6 +917,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Int }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -744,6 +975,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null, 0); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Bool, ConnectorValueType.Real, ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -785,6 +1032,32 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override bool EnableAddInput + { + get; + } = true; + + public override bool EnableAddOutput + { + get; + } = false; + + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -826,6 +1099,32 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override bool EnableAddInput + { + get; + } = true; + + public override bool EnableAddOutput + { + get; + } = false; + + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -867,6 +1166,22 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + + public override List ValueTypeOutput + { + get + { + return new List() { ConnectorValueType.Real }; + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -908,12 +1223,33 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Bool }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) { output.Value.ConnectorValue = (Input[0].ConnectorValue > Input[1].ConnectorValue) ? 1 : 0; } + base.CalculateOutput(); } } @@ -949,6 +1285,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Bool }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -989,6 +1345,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Bool }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1030,6 +1406,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Bool }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1071,6 +1467,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Bool }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1112,6 +1528,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Bool }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1153,6 +1589,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1193,6 +1649,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1233,6 +1709,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1273,6 +1769,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1313,6 +1829,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1353,6 +1889,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1393,6 +1949,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1433,6 +2009,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1473,6 +2069,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1513,6 +2129,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1553,6 +2189,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1593,6 +2249,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { foreach (var output in Output) @@ -1633,6 +2309,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void GetInput() { //无输入 @@ -1709,6 +2405,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddOutput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void GetInput() { //无输入 @@ -1799,6 +2515,26 @@ namespace AIStudio.Wpf.Logical.ViewModels ExecuteAddInput(null); } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + public override void CalculateOutput() { var first = Input.Values.FirstOrDefault(); @@ -1882,6 +2618,26 @@ namespace AIStudio.Wpf.Logical.ViewModels } } + public override List ValueTypeInput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + + public override List ValueTypeOutput + { + get + { + + return new List() { ConnectorValueType.Real }; + + } + } + private void Start() { IsEnabled = true; diff --git a/Extensions/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs b/Extensions/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs index b883fb3..3c917f9 100644 --- a/Extensions/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs +++ b/Extensions/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs @@ -34,8 +34,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.AddConnector(port); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.None; break; } @@ -51,8 +51,8 @@ namespace AIStudio.Wpf.Mind.Helpers var port2 = new FullyCreatedConnectorInfo(mindNode.Root, mindNode, ConnectorOrientation.Bottom, true) { XRatio = 0.25, YRatio = 1 }; mindNode.AddConnector(port2); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } @@ -71,8 +71,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.CornerRadius = new System.Windows.CornerRadius(0); mindNode.BorderThickness = new System.Windows.Thickness(0, 0, 0, 0); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } diff --git a/Extensions/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs b/Extensions/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs index 16d114a..6df2642 100644 --- a/Extensions/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs +++ b/Extensions/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs @@ -37,8 +37,8 @@ namespace AIStudio.Wpf.Mind.Helpers var port = new FullyCreatedConnectorInfo(mindNode.Root, mindNode, ConnectorOrientation.Right, true) { XRatio = 1, YRatio = 0.5 }; mindNode.AddConnector(port); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.None; break; } @@ -55,8 +55,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.AddConnector(port2); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } @@ -77,8 +77,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.CornerRadius = new System.Windows.CornerRadius(0); mindNode.BorderThickness = new System.Windows.Thickness(0, 0, 0, 0); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } diff --git a/Extensions/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs b/Extensions/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs index 77e7fe3..96a1fb2 100644 --- a/Extensions/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs +++ b/Extensions/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs @@ -33,8 +33,8 @@ namespace AIStudio.Wpf.Mind.Helpers var port = new FullyCreatedConnectorInfo(mindNode.Root, mindNode, ConnectorOrientation.None, true) { XRatio = 0.5, YRatio = 0.5 }; mindNode.AddConnector(port); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.Circle; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.Circle; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.None; break; } @@ -50,8 +50,8 @@ namespace AIStudio.Wpf.Mind.Helpers var port2 = new FullyCreatedConnectorInfo(mindNode.Root, mindNode, ConnectorOrientation.Right, true) { XRatio = 1, YRatio = 0.5 }; mindNode.AddConnector(port2); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } @@ -70,8 +70,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.CornerRadius = new System.Windows.CornerRadius(0); mindNode.BorderThickness = new System.Windows.Thickness(0, 0, 0, 1); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } diff --git a/Extensions/AIStudio.Wpf.Mind/Helpers/MindLayout.cs b/Extensions/AIStudio.Wpf.Mind/Helpers/MindLayout.cs index 5e09bc2..c3c9bab 100644 --- a/Extensions/AIStudio.Wpf.Mind/Helpers/MindLayout.cs +++ b/Extensions/AIStudio.Wpf.Mind/Helpers/MindLayout.cs @@ -33,8 +33,8 @@ namespace AIStudio.Wpf.Mind.Helpers var port = new FullyCreatedConnectorInfo(mindNode.Root, mindNode, ConnectorOrientation.None, true) { XRatio = 0.5, YRatio = 0.5 }; mindNode.AddConnector(port); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.Circle; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.Circle; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.None; break; } @@ -50,8 +50,8 @@ namespace AIStudio.Wpf.Mind.Helpers var port2 = new FullyCreatedConnectorInfo(mindNode.Root, mindNode, ConnectorOrientation.Right, true) { XRatio = 1, YRatio = 0.5 }; mindNode.AddConnector(port2); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } @@ -70,8 +70,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.CornerRadius = new System.Windows.CornerRadius(0); mindNode.BorderThickness = new System.Windows.Thickness(0, 0, 0, 1); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Left; break; } diff --git a/Extensions/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs b/Extensions/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs index c1a810c..8b6e39e 100644 --- a/Extensions/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs +++ b/Extensions/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs @@ -33,8 +33,8 @@ namespace AIStudio.Wpf.Mind.Helpers var port = new FullyCreatedConnectorInfo(mindNode.Root, mindNode, ConnectorOrientation.Bottom, true) { XRatio = 0.5, YRatio = 1 }; mindNode.AddConnector(port); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.None; break; } @@ -51,8 +51,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.AddConnector(port2); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Top; break; } @@ -71,8 +71,8 @@ namespace AIStudio.Wpf.Mind.Helpers mindNode.CornerRadius = new System.Windows.CornerRadius(0); mindNode.BorderThickness = new System.Windows.Thickness(0, 0, 0, 0); } - mindNode.ShapeViewModel.SinkMarker.PathStyle = ArrowPathStyle.None; - mindNode.ShapeViewModel.SinkMarker.SizeStyle = ArrowSizeStyle.VerySmall; + mindNode.ShapeViewModel.SinkMarker.PathStyle = PathStyle.None; + mindNode.ShapeViewModel.SinkMarker.SizeStyle = SizeStyle.VerySmall; mindNode.ConnectorOrientation = ConnectorOrientation.Top; break; }