diff --git a/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs b/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs index 1b0b6d8..179d432 100644 --- a/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs +++ b/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs @@ -161,7 +161,7 @@ DesignerItems.OfType() [XmlArray] public List Connections { get; set; } - public void AddItems(IEnumerable selectedDesignerItems) + public void AddItems(IEnumerable selectedDesignerItems) { var items = selectedDesignerItems.OfType().Select(p => p.ToXmlObject()); foreach (var item in items) diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs index 2508448..1647c39 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs @@ -177,7 +177,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels #endregion - protected virtual bool AddVerify(SelectableDesignerItemViewModelBase arg) + protected virtual bool AddVerify(SelectableViewModelBase arg) { return true; } @@ -402,7 +402,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels return null; } - private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) + private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) { if (connector is FullyCreatedConnectorInfo fully) { @@ -413,7 +413,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels } #region 主题 - public void SetPropertyValue(SelectableDesignerItemViewModelBase selectable, string propertyName) + public void SetPropertyValue(SelectableViewModelBase selectable, string propertyName) { foreach (var item in DiagramViewModel.SelectedItems) { diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs index a0b768f..e26ad92 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs @@ -119,7 +119,7 @@ namespace AIStudio.Wpf.Logical RaisePropertyChanged("Items"); } - protected override bool AddVerify(SelectableDesignerItemViewModelBase arg) + protected override bool AddVerify(SelectableViewModelBase arg) { if (base.AddVerify(arg) == false) return false; diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs index 293f6c0..0793b06 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs @@ -155,7 +155,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels } } - public SelectableDesignerItemViewModelBase SelectedItem + public SelectableViewModelBase SelectedItem { get { diff --git a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs index 18277b5..2a0ba69 100644 --- a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs @@ -21,7 +21,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels } - public SelectableDesignerItemViewModelBase SelectedItem + public SelectableViewModelBase SelectedItem { get { diff --git a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs index 2466d20..4571f0d 100644 --- a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs +++ b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs @@ -227,9 +227,9 @@ namespace AIStudio.Wpf.DiagramDesigner Rect rubberBand = new Rect(startPoint.Value, endPoint.Value); ItemsControl itemsControl = GetParent(typeof(ItemsControl), _designerCanvas); - foreach (SelectableDesignerItemViewModelBase item in vm.Items) + foreach (SelectableViewModelBase item in vm.Items) { - if (item is SelectableDesignerItemViewModelBase) + if (item is SelectableViewModelBase) { DependencyObject container = itemsControl.ItemContainerGenerator.ContainerFromItem(item); diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs index b4d242c..2acee08 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs @@ -169,7 +169,7 @@ namespace AIStudio.Wpf.DiagramDesigner { StreamResourceInfo sri = Application.GetResourceStream(new Uri("pack://application:,,,/AIStudio.Wpf.DiagramDesigner;component/Images/FormatPainter.cur", UriKind.RelativeOrAbsolute)); this.Cursor = new Cursor(sri.Stream); - foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items) + foreach (SelectableViewModelBase item in _viewModel.Items) { item.IsHitTestVisible = false; } @@ -178,7 +178,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void EnterMove() { this.Cursor = Cursors.SizeAll; - foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items) + foreach (SelectableViewModelBase item in _viewModel.Items) { item.IsHitTestVisible = false; } @@ -187,7 +187,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExitCursor() { this.Cursor = Cursors.Arrow; - foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items) + foreach (SelectableViewModelBase item in _viewModel.Items) { item.IsHitTestVisible = true; } @@ -195,7 +195,7 @@ namespace AIStudio.Wpf.DiagramDesigner } #endregion - private void Format(SelectableDesignerItemViewModelBase source, SelectableDesignerItemViewModelBase target) + private void Format(SelectableViewModelBase source, SelectableViewModelBase target) { CopyHelper.CopyPropertyValue(source.ColorViewModel, target.ColorViewModel); CopyHelper.CopyPropertyValue(source.FontViewModel, target.FontViewModel); @@ -253,7 +253,7 @@ namespace AIStudio.Wpf.DiagramDesigner if (_service.DrawModeViewModel.CursorMode == CursorMode.Format) { var element = (e.OriginalSource as FrameworkElement); - if (element.DataContext is SelectableDesignerItemViewModelBase target) + if (element.DataContext is SelectableViewModelBase target) { Format(_viewModel.SelectedItems.FirstOrDefault(), target); return; diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs index 866808a..42f67be 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs @@ -18,11 +18,11 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls base.DragCompleted += DragThumb_DragCompleted; } - private List designerItems; + private List designerItems; private void DragThumb_DragStarted(object sender, DragStartedEventArgs e) { - SelectableDesignerItemViewModelBase designerItem = this.DataContext as SelectableDesignerItemViewModelBase; + SelectableViewModelBase designerItem = this.DataContext as SelectableViewModelBase; if (designerItem != null && designerItem.IsSelected) { @@ -43,7 +43,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls if (designerItem is PointDesignerItemViewModel) { - designerItems = new List { designerItem }; + designerItems = new List { designerItem }; } foreach (DesignerItemViewModelBase item in designerItems.OfType()) diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs index e382535..2967e6f 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs @@ -17,7 +17,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls base.DragCompleted += ResizeThumb_DragCompleted; } - private List designerItems; + private List designerItems; IDiagramViewModel diagarmViewModel; private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e) diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs index 1b8be68..cdd388b 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs @@ -25,7 +25,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls DragCompleted += RotateThumb_DragCompleted; } - private List designerItems; + private List designerItems; private void RotateThumb_DragStarted(object sender, DragStartedEventArgs e) { diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs index 8e1cc9a..c53fe32 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs @@ -118,7 +118,7 @@ namespace AIStudio.Wpf.DiagramDesigner } [XmlArray] - public List Connectors + public List Connectors { get; set; } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorLabelItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorLabelItem.cs new file mode 100644 index 0000000..38eb229 --- /dev/null +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorLabelItem.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AIStudio.Wpf.DiagramDesigner +{ + public class ConnectorLabelItem + { + + } +} diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorVertexItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorVertexItem.cs new file mode 100644 index 0000000..4b0f01f --- /dev/null +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorVertexItem.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AIStudio.Wpf.DiagramDesigner +{ + class ConnectorVertexItem + { + } +} diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/LinkLabelItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/LinkLabelItem.cs deleted file mode 100644 index 28af46f..0000000 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/LinkLabelItem.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace AIStudio.Wpf.DiagramDesigner.Models.Serializables -{ - public class LinkLabelItem - { - } -} diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs index af71cbb..b5ba795 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs @@ -33,7 +33,7 @@ namespace AIStudio.Wpf.DiagramDesigner // FontItem = CopyHelper.Mapper(fontViewModel); //} - public SelectableDesignerItemBase(SelectableDesignerItemViewModelBase viewmodel) + public SelectableDesignerItemBase(SelectableViewModelBase viewmodel) { this.Id = viewmodel.Id; this.ZIndex = viewmodel.ZIndex; diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml index 502911b..2ca2801 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml @@ -530,6 +530,7 @@ + diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs index 418f7a8..59bebaf 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs @@ -13,7 +13,7 @@ namespace AIStudio.Wpf.DiagramDesigner IDrawModeViewModel DrawModeViewModel { get; } IQuickThemeViewModel QuickThemeViewModel { get; } ILockObjectViewModel LockObjectViewModel { get; } - SelectableDesignerItemViewModelBase SelectedItem { get; set; } + SelectableViewModelBase SelectedItem { get; set; } IColorViewModel CopyDefaultColorViewModel(); IFontViewModel CopyDefaultFontViewModel(); } @@ -132,8 +132,8 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private SelectableDesignerItemViewModelBase _selectedItem; - public SelectableDesignerItemViewModelBase SelectedItem + private SelectableViewModelBase _selectedItem; + public SelectableViewModelBase SelectedItem { get { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/LinkLabelModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorLabelModel.cs similarity index 94% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/LinkLabelModel.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorLabelModel.cs index 8ab14d8..8ad19b1 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/LinkLabelModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorLabelModel.cs @@ -4,9 +4,9 @@ using SvgPathProperties; namespace AIStudio.Wpf.DiagramDesigner { - public class LinkLabelModel : ConnectorPoint, ISelectable + public class ConnectorLabelModel : ConnectorPoint, ISelectable { - public LinkLabelModel(ConnectorViewModel parent, string content, double? distance = null, PointBase? offset = null) + public ConnectorLabelModel(ConnectorViewModel parent, string content, double? distance = null, PointBase? offset = null) { Parent = parent; Text = content; @@ -158,7 +158,7 @@ namespace AIStudio.Wpf.DiagramDesigner public void AddToSelection(bool selected) { - foreach (var item in Parent.Labels) + foreach (var item in Parent.Labels.ToList()) item.IsSelected = false; if (selected == true) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/LinkVertexModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorVertexModel.cs similarity index 81% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/LinkVertexModel.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorVertexModel.cs index 7155fe1..66e2ac5 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/LinkVertexModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorVertexModel.cs @@ -2,9 +2,9 @@ namespace AIStudio.Wpf.DiagramDesigner { - public class LinkVertexModel : ConnectorPoint + public class ConnectorVertexModel : ConnectorPoint { - public LinkVertexModel(ConnectorViewModel parent, PointBase? position = null) + public ConnectorVertexModel(ConnectorViewModel parent, PointBase? position = null) { Parent = parent; X = position?.X ?? 0; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs index b243b1e..71a075c 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs @@ -12,7 +12,7 @@ using SvgPathProperties; namespace AIStudio.Wpf.DiagramDesigner { - public class ConnectorViewModel : SelectableDesignerItemViewModelBase + public class ConnectorViewModel : SelectableViewModelBase { public ConnectorViewModel(IDiagramViewModel parent, FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode) { @@ -61,12 +61,13 @@ namespace AIStudio.Wpf.DiagramDesigner this.SinkConnectorInfo = sinkConnectorInfo; DeleteConnectionCommand = new SimpleCommand(DeleteConnection); AddVertexCommand = new SimpleCommand(AddVertex); + AddTextCommand = new SimpleCommand(AddText); } protected void LoadDesignerItemViewModel(SelectableDesignerItemBase designerbase) { ConnectionItem designer = designerbase as ConnectionItem; - Vertices = new ObservableCollection(designer.Vertices.Select(p => new LinkVertexModel(this, new PointBase(p.X, p.Y)))); + Vertices = new ObservableCollection(designer.Vertices.Select(p => new ConnectorVertexModel(this, new PointBase(p.X, p.Y)))); } @@ -228,8 +229,8 @@ namespace AIStudio.Wpf.DiagramDesigner } //待完善这两处 - private ObservableCollection _vertices = new ObservableCollection(); - public ObservableCollection Vertices + private ObservableCollection _vertices = new ObservableCollection(); + public ObservableCollection Vertices { get { @@ -241,8 +242,8 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private ObservableCollection _labels = new ObservableCollection(); - public ObservableCollection Labels + private ObservableCollection _labels = new ObservableCollection(); + public ObservableCollection Labels { get { @@ -337,6 +338,11 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } + + public SimpleCommand AddTextCommand + { + get; set; + } #endregion private void ConnectorViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) @@ -351,10 +357,6 @@ namespace AIStudio.Wpf.DiagramDesigner break; case nameof(Area): UpdatePathGeneratorResult(); - if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs) - { - OutTextItemLocation((RectangleBase)valuePropertyChangedEventArgs.OldValue, (RectangleBase)valuePropertyChangedEventArgs.NewValue); - } break; case nameof(Vertices): foreach (var vertice in Vertices) @@ -414,7 +416,7 @@ namespace AIStudio.Wpf.DiagramDesigner break; } } - else if (sender is LinkVertexModel) + else if (sender is ConnectorVertexModel) { switch (e.PropertyName) { @@ -425,7 +427,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - else if (sender is LinkLabelModel linkLabelModel) + else if (sender is ConnectorLabelModel linkLabelModel) { switch (e.PropertyName) { @@ -628,7 +630,7 @@ namespace AIStudio.Wpf.DiagramDesigner MouseButtonEventArgs mosueArg = ((EventToCommandArgs)parameter).EventArgs as MouseButtonEventArgs; var position = mosueArg.GetPosition(((EventToCommandArgs)parameter).Sender as IInputElement); - var vertice = new LinkVertexModel(this, new PointBase(position.X, position.Y)); + var vertice = new ConnectorVertexModel(this, new PointBase(position.X, position.Y)); vertice.PropertyChanged += new WeakINPCEventHandler(ConnectorViewModel_PropertyChanged).Handler; Vertices.Add(vertice); UpdatePathGeneratorResult(); @@ -641,13 +643,12 @@ namespace AIStudio.Wpf.DiagramDesigner protected override void ExecuteEditCommand(object param) { - if (this.OutTextItem != null) return; - AddText(""); + AddText(); } - public void AddText(string text) + public void AddText(object text = null) { - var label = new LinkLabelModel(this, ""); + var label = new ConnectorLabelModel(this, text?.ToString()); label.PropertyChanged += new WeakINPCEventHandler(ConnectorViewModel_PropertyChanged).Handler; label.IsSelected = true; Labels.Add(label); @@ -655,18 +656,6 @@ namespace AIStudio.Wpf.DiagramDesigner var paths = Labels.Count > 0 ? PathGeneratorResult.Paths.Select(p => new SvgPath(p)).ToArray() : Array.Empty(); label.UpdatePosition(paths); } - - public void OutTextItemLocation(RectangleBase oldArea, RectangleBase newArea) - { - //if (this.OutTextItem is TextDesignerItemViewModel text) - //{ - // var oldpoint = new PointBase(oldArea.Left + oldArea.Width / 2, oldArea.Top + oldArea.Height / 2); - // var newpoint = new PointBase(newArea.Left + newArea.Width / 2, newArea.Top + newArea.Height / 2); - - // text.Left = text.Left + newpoint.X - oldpoint.X; - // text.Top = text.Top + newpoint.Y - oldpoint.Y; - //} - } #endregion } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs index 0385525..9988ad1 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs @@ -11,7 +11,7 @@ using AIStudio.Wpf.DiagramDesigner.Geometrys; namespace AIStudio.Wpf.DiagramDesigner { - public abstract class DesignerItemViewModelBase : SelectableDesignerItemViewModelBase + public abstract class DesignerItemViewModelBase : SelectableViewModelBase { public DesignerItemViewModelBase() : base() { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index b6775f9..b55e145 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -452,7 +452,7 @@ namespace AIStudio.Wpf.DiagramDesigner { if (e.OldItems != null) { - foreach (var item in e.OldItems.OfType()) + foreach (var item in e.OldItems.OfType()) { item.PropertyChanged -= Item_PropertyChanged; item.Dispose(); @@ -460,7 +460,7 @@ namespace AIStudio.Wpf.DiagramDesigner } if (e.NewItems != null) { - foreach (var item in e.NewItems.OfType()) + foreach (var item in e.NewItems.OfType()) { item.PropertyChanged += Item_PropertyChanged; } @@ -675,9 +675,9 @@ namespace AIStudio.Wpf.DiagramDesigner } - public ObservableCollection Items { get; set; } = new ObservableCollection(); + public ObservableCollection Items { get; set; } = new ObservableCollection(); - public List SelectedItems + public List SelectedItems { get { @@ -698,13 +698,13 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public Func OutAddVerify + public Func OutAddVerify { get; set; } - public bool AddVerify(SelectableDesignerItemViewModelBase item) + public bool AddVerify(SelectableViewModelBase item) { if (item.InitData() == false) return false; @@ -722,14 +722,14 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteDirectAddItemCommand(object parameter) { - if (parameter is SelectableDesignerItemViewModelBase ite) + if (parameter is SelectableViewModelBase ite) { if (AddVerify(ite) != true) return; ClearSelectedItems(); Add(ite); } - else if (parameter is List items) + else if (parameter is List items) { if (items.Select(p => AddVerify(p)).Any() != true) return; @@ -741,7 +741,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private void Add(SelectableDesignerItemViewModelBase item) + private void Add(SelectableViewModelBase item) { item.Parent = this; item.ZIndex = Items.Count; @@ -768,7 +768,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteAddItemCommand(object parameter) { - if (parameter is SelectableDesignerItemViewModelBase ite) + if (parameter is SelectableViewModelBase ite) { if (AddVerify(ite) != true) return; @@ -781,7 +781,7 @@ namespace AIStudio.Wpf.DiagramDesigner Items.Remove(ite); }); } - else if (parameter is List items) + else if (parameter is List items) { if (items.Select(p => AddVerify(p)).Any() != true) return; @@ -801,7 +801,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteDirectRemoveItemCommand(object parameter) { - if (parameter is SelectableDesignerItemViewModelBase ite) + if (parameter is SelectableViewModelBase ite) { ite.IsSelected = false; Items.Remove(ite); @@ -810,7 +810,7 @@ namespace AIStudio.Wpf.DiagramDesigner Items.Remove(ite.OutTextItem); } } - else if (parameter is List items) + else if (parameter is List items) { foreach (var item in items) { @@ -825,7 +825,7 @@ namespace AIStudio.Wpf.DiagramDesigner } private void ExecuteRemoveItemCommand(object parameter) { - if (parameter is SelectableDesignerItemViewModelBase ite) + if (parameter is SelectableViewModelBase ite) { DoCommandManager.DoNewCommand(this.ToString(), () => { @@ -841,7 +841,7 @@ namespace AIStudio.Wpf.DiagramDesigner Items.Add(ite); }); } - else if (parameter is List items) + else if (parameter is List items) { DoCommandManager.DoNewCommand(this.ToString(), () => { @@ -1078,9 +1078,9 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteBringForwardCommand(object parameter) { - List ordered = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); + List ordered = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1097,7 +1097,7 @@ namespace AIStudio.Wpf.DiagramDesigner item.ZIndex = newIndex; changeditems.Add(item); - IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); + IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); foreach (var elm in it) { @@ -1127,10 +1127,10 @@ namespace AIStudio.Wpf.DiagramDesigner } private void ExecuteBringToFrontCommand(object parameter) { - List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); - List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); + List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); + List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1138,7 +1138,7 @@ namespace AIStudio.Wpf.DiagramDesigner int i = childrenSorted.Count - 1; int j = childrenSorted.Count - selectionSorted.Count - 1; - foreach (SelectableDesignerItemViewModelBase item in childrenSorted) + foreach (SelectableViewModelBase item in childrenSorted) { item.SetOldValue(item.ZIndex, nameof(item.ZIndex), guid.ToString()); if (selectionSorted.Contains(item)) @@ -1167,10 +1167,10 @@ namespace AIStudio.Wpf.DiagramDesigner } private void ExecuteSendBackwardCommand(object parameter) { - List ordered = this.SelectedItems.OrderBy(p => p.ZIndex).ToList(); + List ordered = this.SelectedItems.OrderBy(p => p.ZIndex).ToList(); int count = this.Items.Count; - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1185,7 +1185,7 @@ namespace AIStudio.Wpf.DiagramDesigner item.SetOldValue(item.ZIndex, nameof(item.ZIndex), guid.ToString()); item.ZIndex = newIndex; changeditems.Add(item); - IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); + IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); foreach (var elm in it) { @@ -1216,10 +1216,10 @@ namespace AIStudio.Wpf.DiagramDesigner } private void ExecuteSendToBackCommand(object parameter) { - List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); - List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); + List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); + List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1227,7 +1227,7 @@ namespace AIStudio.Wpf.DiagramDesigner int i = childrenSorted.Count - 1; int j = selectionSorted.Count - 1; - foreach (SelectableDesignerItemViewModelBase item in childrenSorted) + foreach (SelectableViewModelBase item in childrenSorted) { item.SetOldValue(item.ZIndex, nameof(item.ZIndex), guid.ToString()); if (selectionSorted.Contains(item)) @@ -1438,7 +1438,7 @@ namespace AIStudio.Wpf.DiagramDesigner return; try { - List items = new List(); + List items = new List(); SerializableObject copyitem = JsonConvert.DeserializeObject(clipboardData); @@ -1469,7 +1469,7 @@ namespace AIStudio.Wpf.DiagramDesigner OffsetX += 10; OffsetY += 10; - List connectors = new List(); + List connectors = new List(); foreach (var connection in copyitem.Connections) { var connectionItem = JsonConvert.DeserializeObject(connection.ObjectJson); @@ -1550,7 +1550,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) + private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) { if (connector is FullyCreatedConnectorInfo fully) { @@ -1571,8 +1571,8 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteDeleteCommand(object parameter) { - List itemsToRemove = SelectedItems.OfType().ToList(); - List connectionsToAlsoRemove = new List(); + List itemsToRemove = SelectedItems.OfType().ToList(); + List connectionsToAlsoRemove = new List(); foreach (var connector in Items.OfType()) { @@ -1744,7 +1744,7 @@ namespace AIStudio.Wpf.DiagramDesigner public void UpdateZIndex() { - List ordered = Items.OrderBy(p => p.ZIndex).ToList(); + List ordered = Items.OrderBy(p => p.ZIndex).ToList(); for (int i = 0; i < ordered.Count; i++) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs similarity index 94% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs index 66fa8d7..c4ea601 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public abstract class SelectableDesignerItemViewModelBase : BindableBase, ISelectItems, ISelectable, IGroupable + public abstract class SelectableViewModelBase : BindableBase, ISelectItems, ISelectable, IGroupable { private IDiagramServiceProvider _service { @@ -30,20 +30,20 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public SelectableDesignerItemViewModelBase() + public SelectableViewModelBase() { Init(); (FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged; } - public SelectableDesignerItemViewModelBase(IDiagramViewModel parent, SelectableDesignerItemBase designer) + public SelectableViewModelBase(IDiagramViewModel parent, SelectableDesignerItemBase designer) { Init(); LoadDesignerItemViewModel(parent, designer); (FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged; } - public SelectableDesignerItemViewModelBase(IDiagramViewModel parent, string json) + public SelectableViewModelBase(IDiagramViewModel parent, string json) { Init(); LoadDesignerItemViewModel(parent, JsonConvert.DeserializeObject(json, ToXmlType()) as SelectableDesignerItemBase); @@ -107,7 +107,7 @@ namespace AIStudio.Wpf.DiagramDesigner return true; } - public List SelectedItems + public List SelectedItems { //todo get @@ -145,7 +145,7 @@ namespace AIStudio.Wpf.DiagramDesigner SetProperty(ref _parentId, value); } } - public SelectableDesignerItemViewModelBase ParentItem + public SelectableViewModelBase ParentItem { get; set; } @@ -366,7 +366,7 @@ namespace AIStudio.Wpf.DiagramDesigner public void AddToSelection(bool selected) { - foreach (SelectableDesignerItemViewModelBase item in Parent.SelectedItems) + foreach (SelectableViewModelBase item in Parent.SelectedItems.ToList()) item.IsSelected = false; Parent.SelectedItems.Clear(); diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BindableBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BindableBase.cs index c4819c8..4a4f6de 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BindableBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BindableBase.cs @@ -71,10 +71,6 @@ namespace AIStudio.Wpf.DiagramDesigner return false; } - if (propertyName == "Area") - { - - } var old = storage; storage = value; RaisePropertyChanged(propertyName, old, value); diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs index b6d6a6a..e74189c 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs @@ -15,11 +15,11 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } - List SelectedItems + List SelectedItems { get; } - ObservableCollection Items + ObservableCollection Items { get; } @@ -183,7 +183,7 @@ namespace AIStudio.Wpf.DiagramDesigner get; } - Func OutAddVerify + Func OutAddVerify { get; set; }