页面视图新增缩略图模式

This commit is contained in:
艾竹
2023-05-27 12:35:44 +08:00
parent b11d39024a
commit 01131dde47
25 changed files with 2177 additions and 190 deletions

View File

@@ -39,9 +39,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{
ToolBoxViewModel = new ToolBoxViewModel(this);
DiagramsViewModels = new ObservableCollection<PageViewModel>();
DiagramsViewModels.Add(new PageViewModel("新建-1", "*", DiagramType.Normal));
PageViewModel = DiagramsViewModels.FirstOrDefault();
PageViewModels = new ObservableCollection<PageViewModel>();
PageViewModels.Add(new PageViewModel("新建-1", "*", DiagramType.Normal));
PageViewModel = PageViewModels.FirstOrDefault();
StandardColor = GenerateStandardGradients();
@@ -62,16 +62,16 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
get; private set;
}
private ObservableCollection<PageViewModel> _diagramsViewModels;
public ObservableCollection<PageViewModel> DiagramsViewModels
private ObservableCollection<PageViewModel> _pageViewModels;
public ObservableCollection<PageViewModel> PageViewModels
{
get
{
return _diagramsViewModels;
return _pageViewModels;
}
set
{
SetProperty(ref _diagramsViewModels, value);
SetProperty(ref _pageViewModels, value);
}
}
@@ -246,7 +246,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{
return
() => {
return new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
return new PageViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
};
}
}
@@ -511,7 +511,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
filename = para;
}
var viewmodel = DiagramsViewModels.FirstOrDefault(p => p.FileName == filename);
var viewmodel = PageViewModels.FirstOrDefault(p => p.FileName == filename);
if (viewmodel != null)
{
PageViewModel = viewmodel;
@@ -549,7 +549,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{
flow = new PageViewModel(filename, diagram);
}
DiagramsViewModels.Add(flow);
PageViewModels.Add(flow);
PageViewModel = flow;
if (string.IsNullOrEmpty(para))
@@ -650,40 +650,40 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
IsOpenBackstage = false;
if (type == DiagramType.FlowChart.ToString())
{
PageViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.Logical.ToString())
{
PageViewModel = new LogicalViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new LogicalViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.SFC.ToString())
{
PageViewModel = new SFCViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new SFCViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.Script.ToString())
{
PageViewModel = new ScriptViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new ScriptViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.Drawing.ToString())
{
PageViewModel = new DrawingViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new DrawingViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else
{
PageViewModel = new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
PageViewModel = new PageViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
DiagramsViewModels.Add(PageViewModel);
PageViewModels.Add(PageViewModel);
}
private void NewMind_Executed(string mindtype = "Mind")
{
IsOpenBackstage = false;
PageViewModel = new MindViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Mind, mindtype.ToEnum<MindType>());
PageViewModel = new MindViewModel(NewNameHelper.GetNewName(PageViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Mind, mindtype.ToEnum<MindType>());
DiagramsViewModels.Add(PageViewModel);
PageViewModels.Add(PageViewModel);
}
private void ExitExecuted()

View File

@@ -160,8 +160,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
if (_diagramViewModel != value)
{
if (_diagramViewModel != null)
{
{
_diagramViewModel.PropertyChanged -= DiagramViewModel_PropertyChanged;
_diagramViewModel.SaveThumbnail();
}
SetProperty(ref _diagramViewModel, value);
if (_diagramViewModel != null)
@@ -369,7 +370,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
List<DiagramViewModel> viewModels = new List<DiagramViewModel>();
foreach (var diagramItem in diagramDocument.DiagramItems)
{
{
var viewModel = GetDiagramViewModel(diagramItem.Name, diagramItem.DiagramType, false);
viewModel.DiagramOption.LayoutOption.ShowGrid = diagramItem.ShowGrid;
viewModel.DiagramOption.LayoutOption.PhysicalGridCellSize = diagramItem.PhysicalGridCellSize;
@@ -409,7 +410,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
viewModel.Items.Add(connectionVM);
}
viewModel.Thumbnail = diagramItem.Thumbnail;
viewModel.Thumbnail = diagramItem.Thumbnail.ToBrush((int)viewModel.DiagramOption.LayoutOption.PageSize.Width / 4, (int)viewModel.DiagramOption.LayoutOption.PageSize.Height / 4);
viewModels.Add(viewModel);
}
@@ -452,7 +453,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
diagramItem.DesignerItems = selectedDesignerItems.Select(p => p.ToSerializableItem(ext)).Where(p => p != null).ToList();
diagramItem.Connections = selectedConnections.Select(p => p.ToSerializableItem(ext)).Where(p => p != null).ToList();
diagramItem.Thumbnail = viewModel.Thumbnail;
diagramItem.Thumbnail = viewModel.Thumbnail.ToBase64String();
diagramDocument.DiagramItems.Add(diagramItem);
}
@@ -505,7 +506,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
diagramItem.DesignerItems = selectedDesignerItems.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList();
diagramItem.Connections = selectedConnections.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList();
diagramItem.Thumbnail = viewModel.Thumbnail;
diagramItem.Thumbnail = viewModel.Thumbnail.ToBase64String();
viewModel = new DiagramViewModel(diagramItem);
viewModel.Name = NewNameHelper.GetNewName(DiagramViewModels.Select(p => p.Name), "页-");
@@ -535,7 +536,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
connectionVM.Id = Guid.NewGuid();
viewModel.Items.Add(connectionVM);
}
viewModel.Thumbnail = diagramItem.Thumbnail;
viewModel.Thumbnail = diagramItem.Thumbnail.ToBrush((int)viewModel.DiagramOption.LayoutOption.PageSize.Width / 4, (int)viewModel.DiagramOption.LayoutOption.PageSize.Height / 4);
DiagramViewModels.Add(viewModel);
DiagramViewModel = viewModel;