using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using CodeMerger.TestExamples; namespace CodeMerger.Controls { public partial class TestExamplesControl : UserControl { public class TestExample { public string Description { get; set; } public string Details { get; set; } public string MasterCode { get; set; } public string SnippetCode { get; set; } } private List _examples = new List(); public TestExamplesControl() { InitializeComponent(); LoadExamplesList(); } private void LoadExamplesList() { _examples = new List { new TestExample { Description = "Merge Simple", Details = "Añade un método a una clase simple", MasterCode = TestExampleCode.SimpleMaster, SnippetCode = TestExampleCode.SimpleSnippet }, new TestExample { Description = "Manejo de Namespace", Details = "Merge de código con diferentes namespaces", MasterCode = TestExampleCode.NamespaceHandlingMaster, SnippetCode = TestExampleCode.NamespaceHandlingSnippet }, new TestExample { Description = "Elementos Virtuales", Details = "Merge de código sin namespace ni clase", MasterCode = TestExampleCode.VirtualElementsMaster, SnippetCode = TestExampleCode.VirtualElementsSnippet }, new TestExample { Description = "Reemplazo de Métodos", Details = "Reemplaza un método existente con una implementación mejorada", MasterCode = TestExampleCode.MethodReplacementMaster, SnippetCode = TestExampleCode.MethodReplacementSnippet }, new TestExample { Description = "Merge Complejo", Details = "Merge de una clase genérica con múltiples métodos y propiedades", MasterCode = TestExampleCode.ComplexMergeMaster, SnippetCode = TestExampleCode.ComplexMergeSnippet }, new TestExample { Description = "Clases Múltiples", Details = "Merge de código con múltiples clases y herencia", MasterCode = TestExampleCode.MultipleClassesMaster, SnippetCode = TestExampleCode.MultipleClassesSnippet }, new TestExample { Description = "Clases Anidadas", Details = "Merge con clases anidadas y estructuras complejas", MasterCode = TestExampleCode.NestedClassesMaster, SnippetCode = TestExampleCode.NestedClassesSnippet }, new TestExample { Description = "Comentarios y Formato", Details = "Merge preservando comentarios XML y formato", MasterCode = TestExampleCode.CommentsFormatMaster, SnippetCode = TestExampleCode.CommentsFormatSnippet } }; lvExamples.ItemsSource = _examples; } private void LvExamples_SelectionChanged(object sender, SelectionChangedEventArgs e) { // No hacer nada, solo permitir selección } private void LoadExample_Click(object sender, RoutedEventArgs e) { var selectedExample = lvExamples.SelectedItem as TestExample; if (selectedExample == null) { MessageBox.Show("Por favor, seleccione un ejemplo primero", "Selección Requerida", MessageBoxButton.OK, MessageBoxImage.Information); return; } var mainWindow = Window.GetWindow(this) as MainWindow; if (mainWindow != null) { // Cargar el ejemplo en los editores mainWindow.txtOriginalCode.Text = selectedExample.MasterCode; mainWindow.txtLLMCode.Text = selectedExample.SnippetCode; // Notificar var logControl = mainWindow.logControl; logControl?.LogInfo($"Ejemplo cargado: {selectedExample.Description}"); } } } }