CodeMergeNG/Controls/TestExamplesControl.xaml.cs

120 lines
4.7 KiB
C#

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<TestExample> _examples = new List<TestExample>();
public TestExamplesControl()
{
InitializeComponent();
LoadExamplesList();
}
private void LoadExamplesList()
{
_examples = new List<TestExample>
{
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}");
}
}
}
}