Files
aistudio-wpf-diagram/AIStudio.Wpf.DiagramDesigner.Additionals/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs

103 lines
2.8 KiB
C#
Raw Normal View History

2022-12-12 22:33:17 +08:00
using System;
2022-10-28 22:45:39 +08:00
using AIStudio.Wpf.DiagramDesigner;
2023-01-25 11:11:27 +08:00
using AIStudio.Wpf.DiagramDesigner.Models;
2022-12-12 22:33:17 +08:00
using AIStudio.Wpf.DiagramDesigner.Services;
2021-07-23 09:42:22 +08:00
using ZXing;
2023-01-25 15:58:05 +08:00
namespace AIStudio.Wpf.DiagramDesigner.Additionals.Extensions.ViewModels
2021-07-23 09:42:22 +08:00
{
public class BarcodeDesignerItemViewModel : DesignerItemViewModelBase
{
private IUIVisualizerService visualiserService;
2023-01-27 14:54:03 +08:00
public BarcodeDesignerItemViewModel() : this(null)
{
}
public BarcodeDesignerItemViewModel(IDiagramViewModel root) : base(root)
2021-07-23 09:42:22 +08:00
{
}
2023-01-24 17:53:04 +08:00
public BarcodeDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
2021-07-23 09:42:22 +08:00
{
}
2023-01-25 11:11:27 +08:00
public BarcodeDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
2023-01-24 23:10:57 +08:00
public override SelectableItemBase GetSerializableObject()
{
return new DesignerItemBase(this, Format.ToString());
}
2023-03-25 11:59:31 +08:00
protected override void Init(IDiagramViewModel root, bool initNew)
2021-07-23 09:42:22 +08:00
{
2023-03-25 11:59:31 +08:00
base.Init(root, initNew);
2021-07-23 09:42:22 +08:00
2023-02-01 23:05:56 +08:00
CustomText = true;
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
2021-07-23 09:42:22 +08:00
}
2023-03-25 11:59:31 +08:00
protected override void InitNew()
{
base.InitNew();
}
2023-01-27 14:54:03 +08:00
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
2021-07-23 09:42:22 +08:00
{
2023-01-27 14:54:03 +08:00
base.LoadDesignerItemViewModel(designerbase);
2021-07-23 09:42:22 +08:00
2023-01-24 17:53:04 +08:00
if (designerbase is DesignerItemBase designer)
{
Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), designer.Reserve.ToString());
}
2021-07-23 09:42:22 +08:00
}
public void AutoSize()
{
ItemWidth = 140;
ItemHeight = 140;
}
protected override void ExecuteEditCommand(object parameter)
{
EditData();
}
2023-05-03 18:35:01 +08:00
public override bool Verify()
2021-07-23 09:42:22 +08:00
{
if (string.IsNullOrEmpty(Icon))
return EditData();
return true;
}
public BarcodeFormat Format { get; set; } = BarcodeFormat.QR_CODE;
public override bool EditData()
{
if (IsReadOnly == true) return false;
BarcodeDesignerItemData data = new BarcodeDesignerItemData(this);
if (visualiserService.ShowDialog(data) == true)
{
bool needauto = Text == null;
Text = data.Text;
Icon = data.Icon;
Margin = data.Margin;
if (needauto)
{
AutoSize();
}
return true;
}
return false;
}
}
}