mind基本完成,准备写文档

This commit is contained in:
艾竹
2023-03-19 23:26:14 +08:00
parent c2f4d3c706
commit 07ac28965e
28 changed files with 1363 additions and 211 deletions

View File

@@ -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;
}
}
}
}