Files
aistudio-wpf-diagram/AIStudio.Wpf.DiagramDesigner/Converters/ConectorValueConverter.cs

75 lines
2.7 KiB
C#
Raw Normal View History

2022-10-28 22:45:39 +08:00
using AIStudio.Wpf.DiagramDesigner;
2023-05-01 00:10:55 +08:00
using Newtonsoft.Json.Linq;
2021-07-23 09:42:22 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Imaging;
2022-10-28 22:45:39 +08:00
namespace AIStudio.Wpf.DiagramDesigner
2021-07-23 09:42:22 +08:00
{
public class ConectorValueConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
2023-04-26 22:53:44 +08:00
if (values[0] is LogicalConnectorInfo logicalConnectorInfo)
2021-07-23 09:42:22 +08:00
{
2023-05-01 13:17:26 +08:00
if (logicalConnectorInfo.ErrorCode != Enums.ConnectorErrorCode.None)
2023-04-26 22:53:44 +08:00
{
if (parameter?.ToString() == "ToolTip")
{
return logicalConnectorInfo.ErrorMessage;
}
else
{
return logicalConnectorInfo.ErrorCode.ToString();
}
}
else if (logicalConnectorInfo.ConnectorValueType == ConnectorValueType.Bool)
2021-07-23 09:42:22 +08:00
{
2023-04-26 22:53:44 +08:00
return (logicalConnectorInfo.ConnectorValue == 0) ? "F" : "T";
2021-07-23 09:42:22 +08:00
}
2023-04-26 22:53:44 +08:00
else if (logicalConnectorInfo.ConnectorValueType == ConnectorValueType.Int)
2021-07-23 09:42:22 +08:00
{
2023-04-26 22:53:44 +08:00
return logicalConnectorInfo.ConnectorValue.ToString("0");
2021-07-23 09:42:22 +08:00
}
2023-04-26 22:53:44 +08:00
else if (logicalConnectorInfo.ConnectorValueType == ConnectorValueType.Real)
2021-07-23 09:42:22 +08:00
{
2023-04-26 22:53:44 +08:00
return logicalConnectorInfo.ConnectorValue.ToString("f3");
2021-07-23 09:42:22 +08:00
}
2023-05-01 00:10:55 +08:00
else if (logicalConnectorInfo.ConnectorValueType == ConnectorValueType.JsonString)
{
if (logicalConnectorInfo.ConnectorString != null)
{
JObject obj = JObject.Parse(logicalConnectorInfo.ConnectorString);
if (obj.ContainsKey("Text"))
{
return obj["Text"].ToString();
2023-05-01 13:17:26 +08:00
}
2023-05-01 00:10:55 +08:00
}
}
2023-04-19 22:26:04 +08:00
else
{
2023-05-01 13:17:26 +08:00
if (parameter?.ToString() == "ToolTip")
{
return logicalConnectorInfo.ConnectorString;
}
else
{
return "...";
}
2023-04-19 22:26:04 +08:00
}
2021-07-23 09:42:22 +08:00
}
return null;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}