# Refactoring Guide - MainWindow ## Übersicht Dieses Dokument beschreibt, wie das Refactoring der `main_window.py` verwaltet wird. ## Feature Flags Das Refactoring verwendet Feature Flags für schrittweise Migration: - `USE_GITEA_HANDLER` - Gitea/Git Operationen - `USE_PROCESS_HANDLER` - Prozess-Management - `USE_PROJECT_HANDLER` - Projekt-Operationen - `USE_UI_HELPERS` - UI Hilfs-Funktionen - `ENABLE_DEBUG_LOGGING` - Debug-Ausgaben - `FORCE_ORIGINAL_IMPLEMENTATION` - Notfall-Override ## Verwaltung ### CLI-Tool verwenden ```bash # Status anzeigen python manage_refactoring.py status # Einzelnen Handler aktivieren python manage_refactoring.py enable gitea python manage_refactoring.py enable process python manage_refactoring.py enable project python manage_refactoring.py enable ui # Alle deaktivieren python manage_refactoring.py disable-all # Spezifisches Flag setzen python manage_refactoring.py set ENABLE_DEBUG_LOGGING true # Test-Konfiguration erstellen python manage_refactoring.py test-config ``` ### Umgebungsvariablen Überschreiben die Konfigurationsdatei: ```bash # Alle Handler aktivieren export CPM_USE_NEW_HANDLERS=true # Einzelne Flags export CPM_USE_GITEA_HANDLER=true export CPM_USE_PROCESS_HANDLER=false ``` ### Konfigurationsdatei Gespeichert in: `~/.claude_project_manager/refactoring_config.json` ```json { "USE_GITEA_HANDLER": false, "USE_PROCESS_HANDLER": false, "USE_PROJECT_HANDLER": false, "USE_UI_HELPERS": false, "ENABLE_DEBUG_LOGGING": false, "FORCE_ORIGINAL_IMPLEMENTATION": false } ``` ## Test-Strategie ### Phase 1: UI Helpers Sicherste Option - nur UI-Hilfsfunktionen ```bash python manage_refactoring.py disable-all python manage_refactoring.py enable ui python main.py # Testen ``` ### Phase 2: Project Manager Projekt-Operationen hinzufügen ```bash python manage_refactoring.py enable project python main.py # Testen ``` ### Phase 3: Process Manager Prozess-Management hinzufügen ```bash python manage_refactoring.py enable process python main.py # Testen ``` ### Phase 4: Gitea Operations Komplexeste Operationen zuletzt ```bash python manage_refactoring.py enable gitea python main.py # Vollständig refactored ``` ## Rollback Bei Problemen: ```bash # Sofort alle neuen Handler deaktivieren python manage_refactoring.py disable-all # Oder Notfall-Override in der Anwendung export CPM_FORCE_ORIGINAL_IMPLEMENTATION=true ``` ## Entwicklung ### Neue Handler hinzufügen 1. Handler-Klasse in `gui/handlers/` erstellen 2. In `gui/handlers/__init__.py` exportieren 3. In `MainWindow._init_handlers()` initialisieren 4. Feature Flag in `gui/config.py` hinzufügen 5. Facade-Methoden in `MainWindow` erstellen ### Handler implementieren ```python # In MainWindow - Facade Pattern def some_method(self, *args): """Method description - Facade""" if hasattr(self, '_handler') and self.REFACTORING_FLAGS.get('USE_MY_HANDLER', False): return self._handler.some_method(*args) else: return self._original_some_method(*args) def _original_some_method(self, *args): """Original implementation""" # Existing code here ``` ## Monitoring Logs prüfen für Refactoring-Status: ```bash # In den Logs suchen grep "Refactoring" app.log grep "handler initialized" app.log ``` ## Bekannte Probleme 1. **Duplizierte Methoden**: Einige Methoden existieren mehrfach - `manage_branches`, `link_to_gitea` - Placeholder vs. Implementierung - `test_gitea_connection`, `verify_repository_on_gitea` - Verschiedene Versionen 2. **Fehlende Methoden**: Einige erwartete Methoden fehlen - `show_git_status`, `commit_changes` - Möglicherweise umbenannt Diese werden in Phase 4 und 5 des Refactorings adressiert.