2024-05-04 15:35:06 -03:00
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System;
|
2024-05-04 06:00:52 -03:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
|
|
|
|
|
namespace CtrEditor.ObjetosSim
|
|
|
|
|
{
|
|
|
|
|
public static class UserControlFactory
|
|
|
|
|
{
|
2024-05-04 15:35:06 -03:00
|
|
|
|
public static UserControl? GetControlForType(Type tipoObjeto)
|
2024-05-04 06:00:52 -03:00
|
|
|
|
{
|
|
|
|
|
if (tipoObjeto == typeof(osBotella))
|
|
|
|
|
return new ucBotella();
|
|
|
|
|
if (tipoObjeto == typeof(osTransporteTTop))
|
|
|
|
|
return new ucTransporteTTop();
|
|
|
|
|
|
|
|
|
|
// Puedes añadir más condiciones para otros tipos
|
|
|
|
|
|
2024-05-04 15:35:06 -03:00
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static osBase? GetInstanceForType(Type tipoObjeto)
|
|
|
|
|
{
|
|
|
|
|
if (tipoObjeto == typeof(osBotella))
|
|
|
|
|
return new osBotella();
|
|
|
|
|
if (tipoObjeto == typeof(osTransporteTTop))
|
|
|
|
|
return new osTransporteTTop();
|
|
|
|
|
|
|
|
|
|
// Puedes añadir más condiciones para otros tipos
|
2024-05-04 06:00:52 -03:00
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
2024-05-04 15:35:06 -03:00
|
|
|
|
|
|
|
|
|
public static osBase? CreateInstanceAndPopulate(Type tipoObjeto, string jsonString)
|
|
|
|
|
{
|
|
|
|
|
osBase? instance = GetInstanceForType(tipoObjeto);
|
|
|
|
|
if (instance != null)
|
|
|
|
|
{
|
|
|
|
|
// Deserializa los datos desde jsonString y popula la instancia
|
|
|
|
|
JsonConvert.PopulateObject(jsonString, instance);
|
|
|
|
|
}
|
|
|
|
|
return instance;
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-06 12:31:45 -03:00
|
|
|
|
public static void AssignDatos(UserControl userControl, osBase datos, SimulationManager simulationManager)
|
2024-05-04 15:35:06 -03:00
|
|
|
|
{
|
|
|
|
|
if (userControl is IDataContainer dataContainer)
|
|
|
|
|
{
|
|
|
|
|
dataContainer.Datos = datos;
|
|
|
|
|
userControl.DataContext = datos;
|
|
|
|
|
datos.VisualRepresentation = userControl;
|
2024-05-08 03:00:31 -03:00
|
|
|
|
datos.ConnectSimManager(simulationManager);
|
2024-05-04 15:35:06 -03:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-05-04 06:00:52 -03:00
|
|
|
|
}
|
|
|
|
|
|
2024-05-04 15:35:06 -03:00
|
|
|
|
|
2024-05-04 06:00:52 -03:00
|
|
|
|
}
|