Files
aistudio-wpf-diagram/AIStudio.Wpf.BaseDiagram/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs
2021-07-29 13:55:18 +08:00

80 lines
2.1 KiB
C#

using AIStudio.Wpf.BaseDiagram.Services;
using System;
using Util.DiagramDesigner;
using ZXing;
namespace AIStudio.Wpf.BaseDiagram.Extensions.ViewModels
{
public class BarcodeDesignerItemViewModel : DesignerItemViewModelBase
{
private IUIVisualizerService visualiserService;
public BarcodeDesignerItemViewModel() : base()
{
}
public BarcodeDesignerItemViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
protected override void Init()
{
base.Init();
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
}
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase)
{
base.LoadDesignerItemViewModel(parent, designerbase);
Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), (designerbase as DesignerItemBase).Reserve.ToString());
ShowText = false;
}
public void AutoSize()
{
ItemWidth = 140;
ItemHeight = 140;
}
protected override void ExecuteEditCommand(object parameter)
{
EditData();
}
public override bool InitData()
{
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;
ShowText = false;
Icon = data.Icon;
Margin = data.Margin;
if (needauto)
{
AutoSize();
}
return true;
}
return false;
}
}
}