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 connectionString;
|
||||||
private readonly string tableName;
|
private readonly string tableName;
|
||||||
private List<T> data = new();
|
private List<T> data = new();
|
||||||
|
public string Clave;
|
||||||
|
|
||||||
public void Add(T item)
|
public void Add(T item)
|
||||||
{
|
{
|
||||||
data.Add(item);
|
data.Add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Remove(T item)
|
||||||
|
{
|
||||||
|
data.Remove(item);
|
||||||
|
}
|
||||||
|
|
||||||
public void Clear()
|
public void Clear()
|
||||||
{
|
{
|
||||||
data.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))
|
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();
|
data.Clear();
|
||||||
|
if (clave == null) return;
|
||||||
|
Clave = clave;
|
||||||
|
|
||||||
using (var connection = new SqliteConnection(connectionString))
|
using (var connection = new SqliteConnection(connectionString))
|
||||||
{
|
{
|
||||||
|
@ -118,6 +135,7 @@ namespace ROIEditor
|
||||||
private readonly string connectionString;
|
private readonly string connectionString;
|
||||||
private readonly string tableName;
|
private readonly string tableName;
|
||||||
private T data; // Ahora 'data' es un objeto de tipo T
|
private T data; // Ahora 'data' es un objeto de tipo T
|
||||||
|
public string Clave;
|
||||||
|
|
||||||
public DatabaseManagerItem(string dbPath, string tableName)
|
public DatabaseManagerItem(string dbPath, string tableName)
|
||||||
{
|
{
|
||||||
|
@ -143,8 +161,13 @@ namespace ROIEditor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Save() { Save(Clave); }
|
||||||
|
|
||||||
public void Save(string clave)
|
public void Save(string clave)
|
||||||
{
|
{
|
||||||
|
if (clave == null) return;
|
||||||
|
Clave = clave;
|
||||||
|
|
||||||
string serializedData = JsonSerializer.Serialize(data);
|
string serializedData = JsonSerializer.Serialize(data);
|
||||||
using (var connection = new SqliteConnection(connectionString))
|
using (var connection = new SqliteConnection(connectionString))
|
||||||
{
|
{
|
||||||
|
@ -161,8 +184,13 @@ namespace ROIEditor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool Load() { return Load(Clave); }
|
||||||
|
|
||||||
public bool Load(string clave)
|
public bool Load(string clave)
|
||||||
{
|
{
|
||||||
|
if (clave == null) return false;
|
||||||
|
Clave = clave;
|
||||||
|
|
||||||
using (var connection = new SqliteConnection(connectionString))
|
using (var connection = new SqliteConnection(connectionString))
|
||||||
{
|
{
|
||||||
connection.Open();
|
connection.Open();
|
||||||
|
|
|
@ -29,51 +29,8 @@ namespace ROIEditor
|
||||||
NombreImagen = imageNameActual;
|
NombreImagen = imageNameActual;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
// Agrega este manejador en el inicializador de tu ventana o control
|
||||||
Guardar_ROI.Click += Guardar_ROI_Click;
|
Guardar_ROI.Click += Guardar_ROI_Click;
|
||||||
|
Borrar_ROI.Click += Borrar_ROI_Click;
|
||||||
|
|
||||||
// Suscripción a los eventos LostFocus
|
// Suscripción a los eventos LostFocus
|
||||||
ROI_xy.LostFocus += GuardarCambiosRoi;
|
ROI_xy.LostFocus += GuardarCambiosRoi;
|
||||||
|
@ -71,6 +72,7 @@ namespace ROIEditor
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ListaROIs_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void ListaROIs_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
||||||
|
@ -79,10 +81,19 @@ namespace ROIEditor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Guardar_ROI_Click(object sender, RoutedEventArgs e)
|
private void Borrar_ROI_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
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)
|
||||||
|
{
|
||||||
ActualizarDatosROI(selectedRoi);
|
ActualizarDatosROI(selectedRoi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -134,6 +145,8 @@ namespace ROIEditor
|
||||||
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
if (ListaROIs.SelectedItem is Roi selectedRoi)
|
||||||
{
|
{
|
||||||
ActualizarDatosROI(selectedRoi);
|
ActualizarDatosROI(selectedRoi);
|
||||||
|
// Si se modificaron las coordenadas
|
||||||
|
DibujarROIsEnCanvas();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,13 +257,13 @@ namespace ROIEditor
|
||||||
_currentRect = null;
|
_currentRect = null;
|
||||||
|
|
||||||
// Actualiza la interfaz de usuario con el nuevo ROI
|
// 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
|
// 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í:
|
// Por ejemplo, si tienes una ListBox para los ROIs, actualízala así:
|
||||||
|
@ -355,6 +368,18 @@ namespace ROIEditor
|
||||||
Canvas.SetTop(imagenDeFondo, 0);
|
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)
|
private void ListaImagenes_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -366,13 +391,14 @@ namespace ROIEditor
|
||||||
}
|
}
|
||||||
if (ListaDeROIs.Count>0)
|
if (ListaDeROIs.Count>0)
|
||||||
{
|
{
|
||||||
ListaDeROIs.SaveData(NombreImagenEditando);
|
ListaDeROIs.Save();
|
||||||
}
|
}
|
||||||
NombreImagenEditando = ListaImagenes.SelectedItem.ToString();
|
NombreImagenEditando = ListaImagenes.SelectedItem.ToString();
|
||||||
|
|
||||||
ListaDeROIs.LoadData(EstadoImagenActual.Get().NombreImagen);
|
ListaDeROIs.Load(NombreImagenEditando);
|
||||||
|
ActualizarListaROIsEnUI();
|
||||||
var imagePath = EstadoImagenActual.Get().PathPlantillasPNG();
|
|
||||||
|
var imagePath = PathPlantillasPNG();
|
||||||
CargarImagenEnTrabajo(imagePath);
|
CargarImagenEnTrabajo(imagePath);
|
||||||
|
|
||||||
CargarEstadoImagen();
|
CargarEstadoImagen();
|
||||||
|
|
Loading…
Reference in New Issue