Mind 出发

This commit is contained in:
艾竹
2023-02-12 21:30:16 +08:00
parent 934357c87c
commit 4d36eac218
27 changed files with 491 additions and 133 deletions

View File

@@ -29,9 +29,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{
ToolBoxViewModel = new ToolBoxViewModel();
DiagramsViewModels = new ObservableCollection<DiagramsViewModel>();
DiagramsViewModels.Add(new DiagramsViewModel("新建-1", "*", DiagramType.Normal));
DiagramsViewModel = DiagramsViewModels.FirstOrDefault();
DiagramsViewModels = new ObservableCollection<PageViewModel>();
DiagramsViewModels.Add(new PageViewModel("新建-1", "*", DiagramType.Normal));
PageViewModel = DiagramsViewModels.FirstOrDefault();
StandardColor = GenerateStandardGradients();
@@ -50,8 +50,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
#region
public ToolBoxViewModel ToolBoxViewModel { get; private set; }
private ObservableCollection<DiagramsViewModel> _diagramsViewModels;
public ObservableCollection<DiagramsViewModel> DiagramsViewModels
private ObservableCollection<PageViewModel> _diagramsViewModels;
public ObservableCollection<PageViewModel> DiagramsViewModels
{
get
{
@@ -63,8 +63,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
}
private DiagramsViewModel _diagramsViewModel;
public DiagramsViewModel DiagramsViewModel
private PageViewModel _diagramsViewModel;
public PageViewModel PageViewModel
{
get
{
@@ -215,14 +215,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
#endregion
public Func<DiagramsViewModel> NewItemFactory
public Func<PageViewModel> NewItemFactory
{
get
{
return
() =>
{
return new DiagramsViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
return new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
};
}
}
@@ -659,7 +659,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
//here's how you can cancel stuff:
//args.Cancel();
if (args.DragablzItem.DataContext is DiagramsViewModel viewModel)
if (args.DragablzItem.DataContext is PageViewModel viewModel)
{
viewModel.Dispose();
}
@@ -683,22 +683,22 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
RaisePropertyChanged(e.PropertyName);
}
if (DiagramsViewModel == null) return;
if (PageViewModel == null) return;
if (sender is IFontViewModel)
DiagramsViewModel.SetFont(sender as IFontViewModel, e.PropertyName);
PageViewModel.SetFont(sender as IFontViewModel, e.PropertyName);
if (sender is IColorViewModel)
DiagramsViewModel.SetColor(sender as IColorViewModel, e.PropertyName);
PageViewModel.SetColor(sender as IColorViewModel, e.PropertyName);
if (sender is IShapeViewModel)
DiagramsViewModel.SetSharp(sender as IShapeViewModel, e.PropertyName);
PageViewModel.SetSharp(sender as IShapeViewModel, e.PropertyName);
if (sender is IQuickThemeViewModel)
DiagramsViewModel.SetQuickItem(sender as IQuickThemeViewModel, e.PropertyName);
PageViewModel.SetQuickItem(sender as IQuickThemeViewModel, e.PropertyName);
if (sender is LockObject)
DiagramsViewModel.LockAction(sender as LockObject, e.PropertyName);
PageViewModel.LockAction(sender as LockObject, e.PropertyName);
if (sender is DesignerItemViewModelBase designer
&& (e.PropertyName == nameof(designer.Angle)
@@ -707,14 +707,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|| e.PropertyName == nameof(designer.ScaleX)
|| e.PropertyName == nameof(designer.ScaleY)))
{
DiagramsViewModel.SetPropertyValue(designer, e.PropertyName);
PageViewModel.SetPropertyValue(designer, e.PropertyName);
}
}
public bool KeyExecuted(KeyEventArgs e)
{
if (DiagramsViewModel?.DiagramViewModel?.ExecuteShortcut(e) == true)
if (PageViewModel?.DiagramViewModel?.ExecuteShortcut(e) == true)
{
return true;
}
@@ -734,17 +734,17 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void UnDoExecuted()
{
DiagramsViewModel?.DiagramViewModel?.UndoCommand.Execute(null);
PageViewModel?.DiagramViewModel?.UndoCommand.Execute(null);
}
private void ReDoExecuted()
{
DiagramsViewModel?.DiagramViewModel?.RedoCommand.Execute(null);
PageViewModel?.DiagramViewModel?.RedoCommand.Execute(null);
}
private void SelectedAllExecuted()
{
DiagramsViewModel?.DiagramViewModel?.SelectAllCommand.Execute(null);
PageViewModel?.DiagramViewModel?.SelectAllCommand.Execute(null);
}
private void OpenExecuted(string para = null)
@@ -771,13 +771,13 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
var viewmodel = DiagramsViewModels.FirstOrDefault(p => p.FileName == filename);
if (viewmodel != null)
{
DiagramsViewModel = viewmodel;
PageViewModel = viewmodel;
MessageBox.Show("文档已经打开");
return;
}
var diagram = DiagramsViewModel.OpenFile(filename, Path.GetExtension(filename));
DiagramsViewModel flow;
var diagram = PageViewModel.OpenFile(filename, Path.GetExtension(filename));
PageViewModel flow;
if (diagram.DiagramType == DiagramType.FlowChart)
{
flow = new FlowchartViewModel(filename, diagram);
@@ -792,14 +792,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
else
{
flow = new DiagramsViewModel(filename, diagram);
flow = new PageViewModel(filename, diagram);
}
DiagramsViewModels.Add(flow);
DiagramsViewModel = flow;
PageViewModel = flow;
if (string.IsNullOrEmpty(para))
{
SaveHistory(DiagramsViewModel);
SaveHistory(PageViewModel);
}
else
{
@@ -810,39 +810,39 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void SaveExecuted()
{
if (DiagramsViewModel == null) return;
if (PageViewModel == null) return;
if (DiagramsViewModel.SaveFile())
if (PageViewModel.SaveFile())
{
SaveHistory(DiagramsViewModel);
SaveHistory(PageViewModel);
}
}
private void SaveAsExecuted()
{
if (DiagramsViewModel == null) return;
if (PageViewModel == null) return;
if (DiagramsViewModel.SaveFile(true))
if (PageViewModel.SaveFile(true))
{
SaveHistory(DiagramsViewModel);
SaveHistory(PageViewModel);
}
}
private void SaveHistory(DiagramsViewModel diagramsViewModel)
private void SaveHistory(PageViewModel diagramsViewModel)
{
HistoryList.Remove(DiagramsViewModel.FileName);
HistoryList.Insert(0, DiagramsViewModel.FileName);
HistoryList.Remove(PageViewModel.FileName);
HistoryList.Insert(0, PageViewModel.FileName);
File.WriteAllText(_history, JsonConvert.SerializeObject(HistoryList));
}
private bool Save_Enable()
{
return DiagramsViewModel != null;
return PageViewModel != null;
}
private void PasteExecuted()
{
DiagramsViewModel?.DiagramViewModel?.PasteCommand.Execute(null);
PageViewModel?.DiagramViewModel?.PasteCommand.Execute(null);
}
private bool Paste_Enabled()
@@ -852,32 +852,32 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void CopyExecuted()
{
DiagramsViewModel?.DiagramViewModel?.CopyCommand.Execute(null);
PageViewModel?.DiagramViewModel?.CopyCommand.Execute(null);
}
private bool Copy_Enabled()
{
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
}
private void DeleteExecuted()
{
DiagramsViewModel?.DiagramViewModel?.DeleteCommand.Execute(null);
PageViewModel?.DiagramViewModel?.DeleteCommand.Execute(null);
}
private bool Delete_Enabled()
{
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
}
private void CutExecuted()
{
DiagramsViewModel?.DiagramViewModel?.CutCommand.Execute(null);
PageViewModel?.DiagramViewModel?.CutCommand.Execute(null);
}
private bool Cut_Enabled()
{
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
}
private void FormatExecuted()
@@ -887,7 +887,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private bool Format_Enabled()
{
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() == 1;
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() == 1;
}
private void New_Executed(string type = "Normal")
@@ -895,22 +895,26 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
IsOpenBackstage = false;
if (type == DiagramType.FlowChart.ToString())
{
DiagramsViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.Logical.ToString())
{
DiagramsViewModel = new LogicalViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new LogicalViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.SFC.ToString())
{
DiagramsViewModel = new SFCViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new SFCViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.Mind.ToString())
{
PageViewModel = new MindViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else
{
DiagramsViewModel = new DiagramsViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
DiagramsViewModels.Add(DiagramsViewModel);
DiagramsViewModels.Add(PageViewModel);
}
private void ExitExecuted()
@@ -920,112 +924,112 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void GroupExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.GroupCommand.Execute(para);
PageViewModel?.DiagramViewModel?.GroupCommand.Execute(para);
}
private void UngroupExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.UngroupCommand.Execute(para);
PageViewModel?.DiagramViewModel?.UngroupCommand.Execute(para);
}
#region
private void AlignTopExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.AlignTopCommand.Execute(para);
PageViewModel?.DiagramViewModel?.AlignTopCommand.Execute(para);
}
private void AlignVerticalCentersExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.AlignVerticalCentersCommand.Execute(para);
PageViewModel?.DiagramViewModel?.AlignVerticalCentersCommand.Execute(para);
}
private void AlignBottomExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.AlignBottomCommand.Execute(para);
PageViewModel?.DiagramViewModel?.AlignBottomCommand.Execute(para);
}
private void AlignLeftExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.AlignLeftCommand.Execute(para);
PageViewModel?.DiagramViewModel?.AlignLeftCommand.Execute(para);
}
private void AlignHorizontalCentersExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.AlignHorizontalCentersCommand.Execute(para);
PageViewModel?.DiagramViewModel?.AlignHorizontalCentersCommand.Execute(para);
}
private void AlignRightExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.AlignRightCommand.Execute(para);
PageViewModel?.DiagramViewModel?.AlignRightCommand.Execute(para);
}
private void BringForwardExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.BringForwardCommand.Execute(para);
PageViewModel?.DiagramViewModel?.BringForwardCommand.Execute(para);
}
private void BringToFrontExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.BringToFrontCommand.Execute(para);
PageViewModel?.DiagramViewModel?.BringToFrontCommand.Execute(para);
}
private void SendBackwardExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
PageViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
}
private void SendToBackExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
PageViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
}
private void DistributeHorizontalExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.DistributeHorizontalCommand.Execute(para);
PageViewModel?.DiagramViewModel?.DistributeHorizontalCommand.Execute(para);
}
private void DistributeVerticalExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.DistributeVerticalCommand.Execute(para);
PageViewModel?.DiagramViewModel?.DistributeVerticalCommand.Execute(para);
}
private void SelectAllExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.SelectAllCommand.Execute(para);
PageViewModel?.DiagramViewModel?.SelectAllCommand.Execute(para);
}
#endregion
private void CenterMoveExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.CenterMoveCommand.Execute(para);
PageViewModel?.DiagramViewModel?.CenterMoveCommand.Execute(para);
}
private void LeftMoveExecuted(object para = null)
{
DiagramsViewModel?.DiagramViewModel?.LeftMoveCommand.Execute(para);
PageViewModel?.DiagramViewModel?.LeftMoveCommand.Execute(para);
}
private void RightMoveExecuted(object para = null)
{
DiagramsViewModel?.DiagramViewModel?.RightMoveCommand.Execute(para);
PageViewModel?.DiagramViewModel?.RightMoveCommand.Execute(para);
}
private void UpMoveExecuted(object para = null)
{
DiagramsViewModel?.DiagramViewModel?.UpMoveCommand.Execute(para);
PageViewModel?.DiagramViewModel?.UpMoveCommand.Execute(para);
}
private void DownMoveExecuted(object para = null)
{
DiagramsViewModel?.DiagramViewModel?.DownMoveCommand.Execute(para);
PageViewModel?.DiagramViewModel?.DownMoveCommand.Execute(para);
}
private void SameWidthExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.SameWidthCommand.Execute(para);
PageViewModel?.DiagramViewModel?.SameWidthCommand.Execute(para);
}
private void SameHeightExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.SameHeightCommand.Execute(para);
PageViewModel?.DiagramViewModel?.SameHeightCommand.Execute(para);
}
private void SameSizeExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.SameSizeCommand.Execute(para);
PageViewModel?.DiagramViewModel?.SameSizeCommand.Execute(para);
}
private void SameAngleExecuted(object para)
{
DiagramsViewModel?.DiagramViewModel?.SameAngleCommand.Execute(para);
PageViewModel?.DiagramViewModel?.SameAngleCommand.Execute(para);
}
private void LockExecuted(object para)
@@ -1040,62 +1044,62 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void AddPageExecuted(object para)
{
DiagramsViewModel?.AddPageExecuted(para);
PageViewModel?.AddPageExecuted(para);
}
private void AddCopyPageExecuted(object para)
{
DiagramsViewModel?.AddCopyPageExecuted(para);
PageViewModel?.AddCopyPageExecuted(para);
}
private void RenamePageExecuted(object para)
{
DiagramsViewModel?.RenamePageExecuted(para);
PageViewModel?.RenamePageExecuted(para);
}
private void EndRenamePageExecuted(object para)
{
DiagramsViewModel?.EndRenamePageExecuted(para);
PageViewModel?.EndRenamePageExecuted(para);
}
private void DeletePageExecuted(object para)
{
DiagramsViewModel?.DeletePageExecuted(para);
PageViewModel?.DeletePageExecuted(para);
}
private void AddImageExecuted(object para)
{
DiagramsViewModel?.AddImageExecuted(para);
PageViewModel?.AddImageExecuted(para);
}
private void EditImageExecuted(object para)
{
DiagramsViewModel?.EditImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
PageViewModel?.EditImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
}
private void ResizeImageExecuted(object para)
{
DiagramsViewModel?.ResizeImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
PageViewModel?.ResizeImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
}
private void ResetImageExecuted(object para)
{
DiagramsViewModel?.ResetImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
PageViewModel?.ResetImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
}
private void AddVideoExectued(object para)
{
DiagramsViewModel?.AddVideoExecuted(para);
PageViewModel?.AddVideoExecuted(para);
}
private void AddOutLineTextExecuted(object para)
{
DiagramsViewModel?.AddOutLineTextExecuted(para);
PageViewModel?.AddOutLineTextExecuted(para);
}
private void AddBarcodeExecuted(object para)
{
DiagramsViewModel?.AddBarcodeExecuted(para);
PageViewModel?.AddBarcodeExecuted(para);
}
private void SelectedColorExecuted(object para)
@@ -1104,9 +1108,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
switch (ColorType)
{
case Models.ColorType.Text: DiagramsViewModel?.SetFont(new FontViewModel() { FontColor = (Color)para }, "FontColor"); break;
case Models.ColorType.Fill: DiagramsViewModel?.SetColor(new ColorViewModel() { FillColor = new ColorObject() { Color = (Color)para } }, "FillColor"); break;
case Models.ColorType.Line: DiagramsViewModel?.SetColor(new ColorViewModel() { LineColor = new ColorObject() { Color = (Color)para } }, "LineColor"); break;
case Models.ColorType.Text: PageViewModel?.SetFont(new FontViewModel() { FontColor = (Color)para }, "FontColor"); break;
case Models.ColorType.Fill: PageViewModel?.SetColor(new ColorViewModel() { FillColor = new ColorObject() { Color = (Color)para } }, "FillColor"); break;
case Models.ColorType.Line: PageViewModel?.SetColor(new ColorViewModel() { LineColor = new ColorObject() { Color = (Color)para } }, "LineColor"); break;
}
}