mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
mind基本完成,准备写文档
This commit is contained in:
@@ -574,6 +574,32 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
}
|
||||
|
||||
private string _searchText;
|
||||
public string SearchText
|
||||
{
|
||||
get
|
||||
{
|
||||
return _searchText;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _searchText, value);
|
||||
}
|
||||
}
|
||||
|
||||
private string _searchInfo;
|
||||
public string SearchInfo
|
||||
{
|
||||
get
|
||||
{
|
||||
return _searchText;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _searchInfo, value);
|
||||
}
|
||||
}
|
||||
|
||||
protected ObservableCollection<CinchMenuItem> menuOptions;
|
||||
public IEnumerable<CinchMenuItem> MenuOptions
|
||||
{
|
||||
@@ -1013,6 +1039,24 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return this._resetLayoutCommand ?? (this._resetLayoutCommand = new SimpleCommand(ExecuteEnable, this.ExecutedResetLayoutCommand));
|
||||
}
|
||||
}
|
||||
|
||||
private SimpleCommand _searchDownCommand;
|
||||
public SimpleCommand SearchDownCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._searchDownCommand ?? (this._searchDownCommand = new SimpleCommand(ExecuteEnable, this.ExecutedSearchDownCommand));
|
||||
}
|
||||
}
|
||||
|
||||
private SimpleCommand _searchUpCommand;
|
||||
public SimpleCommand SearchUpCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._searchUpCommand ?? (this._searchUpCommand = new SimpleCommand(ExecuteEnable, this.ExecutedSearchUpCommand));
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
protected DoCommandManager DoCommandManager = new DoCommandManager();
|
||||
@@ -1136,7 +1180,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
#endregion
|
||||
protected virtual void ExecutedResetLayoutCommand(object obj)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
||||
}
|
||||
|
||||
private void Items_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
|
||||
@@ -1168,8 +1212,8 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
RaisePropertyChanged(nameof(SelectedItem));
|
||||
}
|
||||
|
||||
//连续改变,需要特殊处理,不单独触发属性改变ReDo
|
||||
if (sender is DesignerItemViewModelBase designer)
|
||||
//连续改变,需要特殊处理,不单独触发属性改变ReDo
|
||||
if (sender is DesignerItemViewModelBase designer)
|
||||
{
|
||||
if (designer.BeginDo) return;
|
||||
}
|
||||
@@ -1395,7 +1439,17 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (parameter is ISelectable selectable)
|
||||
{
|
||||
selectable.IsSelected = true;
|
||||
foreach (var item in this.Items.ToList())
|
||||
{
|
||||
if (object.Equals(selectable, item))
|
||||
{
|
||||
item.IsSelected = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.IsSelected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@@ -2182,29 +2236,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
Delete(parameter);
|
||||
}
|
||||
|
||||
protected void ExecuteSelectBrotherCommand(object parameter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void ExecuteSelectPearCommand(object parameter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void ExecuteSelectRouteCommand(object parameter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void ExecuteSelectChildCommand(object parameter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected virtual bool Delete(object parameter)
|
||||
{
|
||||
List<SelectableDesignerItemViewModelBase> itemsToRemove;
|
||||
@@ -2592,5 +2623,88 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ExecutedSearchUpCommand(object obj)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
var selecteddesign = SelectedItem as DesignerItemViewModelBase;
|
||||
var searchitems = Items.OfType<DesignerItemViewModelBase>().Where(p => p.Text?.Contains(obj.ToString()) == true).ToList();
|
||||
if (searchitems.Count > 0)
|
||||
{
|
||||
int selectindex = 0;
|
||||
if (selecteddesign != null)
|
||||
{
|
||||
int index = searchitems.IndexOf(selecteddesign);
|
||||
if (index == -1)
|
||||
{
|
||||
selectindex = 0;
|
||||
}
|
||||
else if (index - 1 >= 0)
|
||||
{
|
||||
selectindex = index - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectindex = searchitems.Count - 1;
|
||||
}
|
||||
}
|
||||
SelectItemCommand.Execute(searchitems[selectindex]);
|
||||
SearchInfo = $"第{selectindex + 1}条,共{searchitems.Count}条";
|
||||
|
||||
FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(SelectedItem as DesignerItemViewModelBase) };
|
||||
}
|
||||
else
|
||||
{
|
||||
SearchInfo = "第0条,共0条";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SearchInfo = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void ExecutedSearchDownCommand(object obj)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
var selecteddesign = SelectedItem as DesignerItemViewModelBase;
|
||||
var searchitems = Items.OfType<DesignerItemViewModelBase>().Where(p => p.Text?.Contains(obj.ToString()) == true).ToList();
|
||||
if (searchitems.Count > 0)
|
||||
{
|
||||
int selectindex = 0;
|
||||
if (selecteddesign != null)
|
||||
{
|
||||
int index = searchitems.IndexOf(selecteddesign);
|
||||
if (index == -1)
|
||||
{
|
||||
selectindex = 0;
|
||||
}
|
||||
else if (index + 1 < searchitems.Count)
|
||||
{
|
||||
selectindex = index + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectindex = 0;
|
||||
}
|
||||
}
|
||||
SelectItemCommand.Execute(searchitems[selectindex]);
|
||||
SearchInfo = $"第{selectindex + 1}条,共{searchitems.Count}条";
|
||||
|
||||
FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(SelectedItem as DesignerItemViewModelBase) };
|
||||
}
|
||||
else
|
||||
{
|
||||
SearchInfo = "第0条,共0条";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SearchInfo = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user