Files

130 lines
5.4 KiB
C#
Raw Permalink Normal View History

2021-07-29 13:55:18 +08:00
using AIStudio.Wpf.Flowchart;
2021-07-30 18:26:35 +08:00
using AIStudio.Wpf.SFC;
2021-07-23 09:42:22 +08:00
using System;
using System.Windows.Media;
2022-10-28 22:45:39 +08:00
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Helpers;
2023-01-25 23:55:30 +08:00
using System.Windows;
using System.Collections.Generic;
using AIStudio.Wpf.DiagramDesigner.Models;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
2021-07-23 09:42:22 +08:00
2022-10-28 22:45:39 +08:00
namespace AIStudio.Wpf.DiagramApp.Models
2021-07-23 09:42:22 +08:00
{
public class PathToolBoxData : ToolBoxData
{
public PathToolBoxData(string icon, Type type, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(null, icon, type, width, height, desiredSize, desiredMinSize, description)
2021-07-23 09:42:22 +08:00
{
ColorViewModel.FillColor.Color = Colors.Orange;
}
}
public class TextToolBoxData : ToolBoxData
{
public TextToolBoxData(string text, Type type, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(text, null, type, width, height, desiredSize, desiredMinSize, description)
2021-07-23 09:42:22 +08:00
{
ColorViewModel.FillColor.Color = Colors.Orange;
}
}
public class EllipseTextToolBoxData : ToolBoxData
{
public EllipseTextToolBoxData(string text, Type type, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(text, null, type, width, height, desiredSize, desiredMinSize, description)
2021-07-23 09:42:22 +08:00
{
ColorViewModel.FillColor.Color = Colors.Orange;
}
}
public class ImageToolBoxData : ToolBoxData
{
public ImageToolBoxData(string icon, Type type, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(null, icon, type, width, height, desiredSize, desiredMinSize, description)
2021-07-23 09:42:22 +08:00
{
}
}
public class DesignerItemToolBoxData : ToolBoxData
{
2023-02-03 22:25:03 +08:00
public string FileName
{
get; set;
}
public DesignerItemViewModelBase DesignerItemViewModel
{
get; set;
}
public DesignerItemToolBoxData(DesignerItemBase designerItemBase, string filename, Type type, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(null, null, type, width, height, desiredSize, desiredMinSize, description)
2021-07-23 09:42:22 +08:00
{
Addition = designerItemBase;
2023-01-24 23:10:57 +08:00
DesignerItemViewModel = Activator.CreateInstance(type, null, designerItemBase) as DesignerItemViewModelBase;
2021-07-23 09:42:22 +08:00
FileName = filename;
}
}
public class MultipleDesignerItemToolBoxData : ToolBoxData
{
public string FileName
{
get; set;
}
2023-02-03 22:25:03 +08:00
public List<SelectableDesignerItemViewModelBase> SelectableDesignerItemViewModels
{
get; set;
}
2023-02-03 22:25:03 +08:00
public double CanvasWidth
{
get; set;
}
public double CanvasHeight
{
get; set;
}
public MultipleDesignerItemToolBoxData(SerializableObject designerItemBase, string filename, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(null, null, typeof(List<SelectableDesignerItemViewModelBase>), width, height, desiredSize, desiredMinSize, description)
2023-02-03 22:25:03 +08:00
{
SelectableDesignerItemViewModels = designerItemBase.ToObject();
var minleft = SelectableDesignerItemViewModels.OfType<DesignerItemViewModelBase>().Min(p => p.Left);
var mintop = SelectableDesignerItemViewModels.OfType<DesignerItemViewModelBase>().Min(p => p.Top);
var maxright = SelectableDesignerItemViewModels.OfType<DesignerItemViewModelBase>().Max(p => p.Left + p.ItemWidth);
var maxbottom = SelectableDesignerItemViewModels.OfType<DesignerItemViewModelBase>().Max(p => p.Top + p.ItemHeight);
2023-02-03 22:25:03 +08:00
foreach (var item in SelectableDesignerItemViewModels.OfType<DesignerItemViewModelBase>())
{
item.Left -= minleft;
item.Top -= mintop;
}
2023-02-03 22:25:03 +08:00
CanvasWidth = maxright - minleft;
CanvasHeight = maxbottom - mintop;
2023-02-03 22:25:03 +08:00
designerItemBase.DesignerItems = SelectableDesignerItemViewModels.OfType<DesignerItemViewModelBase>().Select(p => p.ToSerializableItem(".json")).Where(p => p != null).ToList();
designerItemBase.Connections = SelectableDesignerItemViewModels.OfType<ConnectionViewModel>().Select(p => p.ToSerializableItem(".json")).Where(p => p != null).ToList();
2023-02-03 22:25:03 +08:00
Addition = designerItemBase;
FileName = filename;
2021-07-23 09:42:22 +08:00
}
}
public class SvgToolBoxData : ToolBoxData
{
public SvgToolBoxData(string filename, Type type, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(null, filename, type, width, height, desiredSize, desiredMinSize, description)
2021-07-23 09:42:22 +08:00
{
ColorViewModel.FillColor.Color = Colors.Blue;
}
}
public class MediaToolBoxData : ToolBoxData
{
public MediaToolBoxData(string icon, Type type, double width = 32, double height = 32, Size? desiredSize = null, Size? desiredMinSize = null, string description = null) : base(icon, null, type, width, height, desiredSize, desiredMinSize, description)
2021-07-23 09:42:22 +08:00
{
}
}
2023-02-03 22:25:03 +08:00
2021-07-23 09:42:22 +08:00
}