选中状态代码整理

This commit is contained in:
艾竹
2023-05-14 18:02:59 +08:00
parent 58359c36d4
commit 40f81b7209
17 changed files with 663 additions and 62 deletions

View File

@@ -523,7 +523,7 @@ namespace AIStudio.Wpf.DiagramDesigner
case nameof(IsSelected):
if (IsSelected == false)
{
Labels.FirstOrDefault()?.AddToSelection(false);
Labels.FirstOrDefault()?.AddToSelection(false, true);
}
break;
case nameof(RouterMode):

View File

@@ -169,15 +169,20 @@ namespace AIStudio.Wpf.DiagramDesigner
Offset += new VectorBase(0, newvalue - oldvalue);
}
public override void AddToSelection(bool selected)
public override void AddToSelection(bool selected, bool clearother)
{
foreach (var item in Connector.Labels.ToList())
item.IsSelected = false;
if (selected == true)
if (clearother)
{
IsSelected = true;
foreach (var item in Connector.Labels.ToList())
{
if (item != this)
{
item.IsSelected = false;
}
}
}
IsSelected = selected;
}
protected override void ClearText()

View File

@@ -1181,7 +1181,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{
foreach (var item in this.SelectedItems.ToList())
{
item.IsSelected = false;
item.RemoveFromSelection();
}
}
@@ -2498,7 +2498,7 @@ namespace AIStudio.Wpf.DiagramDesigner
item.ParentId = groupItem.Id;
groupItem.Resize();
ClearSelectedItems();
SelectionService.AddToSelection(groupItem);
groupItem.AddToSelection(true, true);
},
() => {
Remove(groupItem);

View File

@@ -153,23 +153,34 @@ namespace AIStudio.Wpf.DiagramDesigner
{
foreach (var designerItemViewModelBase in Root.SelectedItems.ToList())
{
designerItemViewModelBase.ClearSelected();
designerItemViewModelBase.RemoveFromSelection();
}
}
IsSelected = select;
}
public override void AddToSelection(bool selected)
public override void AddToSelection(bool selected, bool clearother)
{
foreach (SelectableDesignerItemViewModelBase item in Root.SelectedItems.ToList())
item.IsSelected = false;
if (clearother == true)
{
foreach (SelectableDesignerItemViewModelBase item in Root.SelectedItems.ToList())
{
if (item != this)
{
item.RemoveFromSelection();
}
}
}
Root.SelectedItems.Clear();
if (selected == true)
{
Root.SelectionService.AddToSelection(this);
}
else
{
Root.SelectionService.RemoveFromSelection(this);
}
}
protected virtual void ExecuteEditCommand(object param)

View File

@@ -72,7 +72,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
protected virtual void Init(IDiagramViewModel root, bool initNew)
{
{
Root = root;
if (Root?.ColorViewModel != null)
@@ -124,7 +124,7 @@ namespace AIStudio.Wpf.DiagramDesigner
protected virtual void InitNew()
{
}
protected virtual void LoadDesignerItemViewModel(SelectableItemBase designerbase)
@@ -144,7 +144,7 @@ namespace AIStudio.Wpf.DiagramDesigner
public bool IsLoaded
{
get;set;
get; set;
}
public bool IsInternalChanged
@@ -185,10 +185,18 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set;
}
public bool DisableSelected
private bool _disableSelected;
public bool SelectedDisable
{
get;set;
}
get
{
return _disableSelected;
}
set
{
SetProperty(ref _disableSelected, value);
}
}
private bool _isSelected;
[Browsable(false)]
@@ -197,7 +205,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get
{
if (DisableSelected == true)
if (SelectedDisable == true)
{
return false;
}
@@ -316,10 +324,6 @@ namespace AIStudio.Wpf.DiagramDesigner
{
return false;
}
if (DisableSelected == true)
{
return false;
}
return _isHitTestVisible;
}
@@ -424,7 +428,7 @@ namespace AIStudio.Wpf.DiagramDesigner
[Browsable(true)]
public string Name
{
get;set;
get; set;
}
private string _text;
@@ -462,12 +466,12 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public virtual void ClearSelected()
public virtual void RemoveFromSelection()
{
_isSelected = false;
IsSelected = false;
}
public virtual void AddToSelection(bool selected)
public virtual void AddToSelection(bool selected, bool clearother)
{
}
@@ -496,7 +500,7 @@ namespace AIStudio.Wpf.DiagramDesigner
protected void ColorViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (IsLoaded == false || IsInternalChanged == true ) { return; }
if (IsLoaded == false || IsInternalChanged == true) { return; }
RaisePropertyChanged(sender, e);
}