Agregado Borrar ROI y testeado
This commit is contained in:
parent
6c7140b73e
commit
2243c5ac9e
|
@ -16,12 +16,18 @@ namespace ROIEditor
|
|||
private readonly string connectionString;
|
||||
private readonly string tableName;
|
||||
private List<T> data = new();
|
||||
public string Clave;
|
||||
|
||||
public void Add(T item)
|
||||
{
|
||||
data.Add(item);
|
||||
}
|
||||
|
||||
public void Remove(T item)
|
||||
{
|
||||
data.Remove(item);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
data.Clear();
|
||||
|
@ -64,8 +70,15 @@ namespace ROIEditor
|
|||
}
|
||||
}
|
||||
|
||||
public void SaveData(string clave)
|
||||
public void Save()
|
||||
{
|
||||
Save(Clave);
|
||||
}
|
||||
|
||||
public void Save(string clave)
|
||||
{
|
||||
if (clave == null) return;
|
||||
Clave = clave;
|
||||
|
||||
using (var connection = new SqliteConnection(connectionString))
|
||||
{
|
||||
|
@ -89,9 +102,13 @@ namespace ROIEditor
|
|||
}
|
||||
}
|
||||
|
||||
public void LoadData(string clave)
|
||||
public void Load() { Load(Clave); }
|
||||
|
||||
public void Load(string clave)
|
||||
{
|
||||
data.Clear();
|
||||
if (clave == null) return;
|
||||
Clave = clave;
|
||||
|
||||
using (var connection = new SqliteConnection(connectionString))
|
||||
{
|
||||
|
@ -118,6 +135,7 @@ namespace ROIEditor
|
|||
private readonly string connectionString;
|
||||
private readonly string tableName;
|
||||
private T data; // Ahora 'data' es un objeto de tipo T
|
||||
public string Clave;
|
||||
|
||||
public DatabaseManagerItem(string dbPath, string tableName)
|
||||
{
|
||||
|
@ -143,8 +161,13 @@ namespace ROIEditor
|
|||
}
|
||||
}
|
||||
|
||||
public void Save() { Save(Clave); }
|
||||
|
||||
public void Save(string clave)
|
||||
{
|
||||
if (clave == null) return;
|
||||
Clave = clave;
|
||||
|
||||
string serializedData = JsonSerializer.Serialize(data);
|
||||
using (var connection = new SqliteConnection(connectionString))
|
||||
{
|
||||
|
@ -161,8 +184,13 @@ namespace ROIEditor
|
|||
}
|
||||
}
|
||||
|
||||
public bool Load() { return Load(Clave); }
|
||||
|
||||
public bool Load(string clave)
|
||||
{
|
||||
if (clave == null) return false;
|
||||
Clave = clave;
|
||||
|
||||
using (var connection = new SqliteConnection(connectionString))
|
||||
{
|
||||
connection.Open();
|
||||
|
|
|
@ -30,50 +30,7 @@ namespace ROIEditor
|
|||
|
||||
}
|
||||
|
||||
public string PathPlantillasJson()
|
||||
{
|
||||
string jsonPath = Path.ChangeExtension(NombreImagen, ".json");
|
||||
var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "Plantillas", jsonPath);
|
||||
return imagePath;
|
||||
}
|
||||
public string PathPlantillasPNG()
|
||||
{
|
||||
string jsonPath = Path.ChangeExtension(NombreImagen, ".png");
|
||||
var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "Plantillas", jsonPath);
|
||||
return imagePath;
|
||||
}
|
||||
|
||||
public void SalvarEstadoJSON()
|
||||
{
|
||||
// Cambia la extensión del archivo de imagen a .json
|
||||
string jsonPath = PathPlantillasJson();
|
||||
|
||||
// Serializa el estado de la imagen a JSON
|
||||
string json = JsonConvert.SerializeObject(NombreImagen, Formatting.Indented);
|
||||
|
||||
// Escribe el JSON en un archivo
|
||||
File.WriteAllText(jsonPath, json);
|
||||
}
|
||||
|
||||
public void CargarEstadoJSON()
|
||||
{
|
||||
string jsonPath = PathPlantillasJson();
|
||||
|
||||
if (File.Exists(jsonPath))
|
||||
{
|
||||
string json = File.ReadAllText(jsonPath);
|
||||
ImagenEstado estadoCargado = JsonConvert.DeserializeObject<ImagenEstado>(json);
|
||||
|
||||
// Usar reflexión para copiar todas las propiedades
|
||||
foreach (PropertyInfo prop in typeof(ImagenEstado).GetProperties())
|
||||
{
|
||||
if (prop.CanRead && prop.CanWrite)
|
||||
{
|
||||
prop.SetValue(this, prop.GetValue(estadoCargado, null), null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ namespace ROIEditor
|
|||
|
||||
// Agrega este manejador en el inicializador de tu ventana o control
|
||||
Guardar_ROI.Click += Guardar_ROI_Click;
|
||||
Borrar_ROI.Click += Borrar_ROI_Click;
|
||||
|
||||
// Suscripción a los eventos LostFocus
|
||||
ROI_xy.LostFocus += GuardarCambiosRoi;
|
||||
|
@ -71,6 +72,7 @@ namespace ROIEditor
|
|||
|
||||
}
|
||||
|
||||
|
||||
private void ListaROIs_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
||||
|
@ -79,6 +81,15 @@ namespace ROIEditor
|
|||
}
|
||||
}
|
||||
|
||||
private void Borrar_ROI_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
||||
{
|
||||
ListaDeROIs.Remove(selectedRoi);
|
||||
ActualizarListaROIsEnUI();
|
||||
}
|
||||
}
|
||||
|
||||
private void Guardar_ROI_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
||||
|
@ -134,6 +145,8 @@ namespace ROIEditor
|
|||
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
||||
{
|
||||
ActualizarDatosROI(selectedRoi);
|
||||
// Si se modificaron las coordenadas
|
||||
DibujarROIsEnCanvas();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -244,13 +257,13 @@ namespace ROIEditor
|
|||
_currentRect = null;
|
||||
|
||||
// Actualiza la interfaz de usuario con el nuevo ROI
|
||||
ActualizarUIConROIs();
|
||||
ActualizarListaROIsEnUI();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void ActualizarUIConROIs()
|
||||
private void ActualizarListaROIsEnUI()
|
||||
{
|
||||
// Aquí actualizas los controles de la interfaz de usuario que muestran los ROIs
|
||||
// Por ejemplo, si tienes una ListBox para los ROIs, actualízala así:
|
||||
|
@ -355,6 +368,18 @@ namespace ROIEditor
|
|||
Canvas.SetTop(imagenDeFondo, 0);
|
||||
|
||||
}
|
||||
public string PathPlantillasJson()
|
||||
{
|
||||
string jsonPath = Path.ChangeExtension(NombreImagenEditando, ".json");
|
||||
var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "Plantillas", jsonPath);
|
||||
return imagePath;
|
||||
}
|
||||
public string PathPlantillasPNG()
|
||||
{
|
||||
string jsonPath = Path.ChangeExtension(NombreImagenEditando, ".png");
|
||||
var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "Plantillas", jsonPath);
|
||||
return imagePath;
|
||||
}
|
||||
|
||||
private void ListaImagenes_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
|
@ -366,13 +391,14 @@ namespace ROIEditor
|
|||
}
|
||||
if (ListaDeROIs.Count>0)
|
||||
{
|
||||
ListaDeROIs.SaveData(NombreImagenEditando);
|
||||
ListaDeROIs.Save();
|
||||
}
|
||||
NombreImagenEditando = ListaImagenes.SelectedItem.ToString();
|
||||
|
||||
ListaDeROIs.LoadData(EstadoImagenActual.Get().NombreImagen);
|
||||
ListaDeROIs.Load(NombreImagenEditando);
|
||||
ActualizarListaROIsEnUI();
|
||||
|
||||
var imagePath = EstadoImagenActual.Get().PathPlantillasPNG();
|
||||
var imagePath = PathPlantillasPNG();
|
||||
CargarImagenEnTrabajo(imagePath);
|
||||
|
||||
CargarEstadoImagen();
|
||||
|
|
Loading…
Reference in New Issue