CtrEditor/PopUps/RenameImageWindow.xaml.cs

82 lines
2.6 KiB
C#

using System.Windows;
using CtrEditor.Models;
using CtrEditor.ObjetosSim;
using Xceed.Wpf.Toolkit.PropertyGrid;
namespace CtrEditor.PopUps
{
public partial class RenameImageWindow : Window
{
public ImageData ImageData { get; private set; }
public bool IsOkClicked { get; private set; }
public RenameImageWindow(string originalName, ImageData imageData = null)
{
InitializeComponent();
OriginalNameTextBlock.Text = originalName;
// Crear o usar ImageData existente
ImageData = imageData ?? new ImageData
{
FileName = originalName,
CustomName = string.Empty,
Etiquetas = string.Empty
};
// Configurar PropertyGrid
PropertyGridControl.SelectedObject = ImageData;
Focus();
}
private void TagEditorButton_Click(object sender, RoutedEventArgs e)
{
try
{
// Obtener el MainWindow para acceder a todos los objetos
var mainWindow = Application.Current.Windows
.OfType<MainWindow>()
.FirstOrDefault();
if (mainWindow?.DataContext is MainViewModel mainViewModel)
{
// Para ImageData, crear un osBase temporal para usar el editor
var tempOsBase = new osTextPlate();
tempOsBase.Etiquetas = ImageData.Etiquetas;
var tagEditor = new TagEditorWindow(tempOsBase, mainViewModel.ObjetosSimulables, mainViewModel._imageDataDictionary);
tagEditor.Owner = this;
if (tagEditor.ShowDialog() == true)
{
// Actualizar ImageData con las nuevas etiquetas
ImageData.Etiquetas = tempOsBase.Etiquetas;
// Forzar actualización del PropertyGrid
PropertyGridControl.Update();
}
}
}
catch (Exception ex)
{
MessageBox.Show($"Error al abrir el editor de etiquetas: {ex.Message}",
"Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
private void OkButton_Click(object sender, RoutedEventArgs e)
{
IsOkClicked = true;
DialogResult = true;
Close();
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
IsOkClicked = false;
DialogResult = false;
Close();
}
}
}