Files
ClawdDotNet/src/ClawdDotNet.Desktop/Views/InstancePickerWindow.axaml.cs
T
RichardandClaude Opus 5 33d95a6c3f UI-Entwurf umgesetzt, Rocket.Chat-Tool, Deploymentcenter 2.4
Sicherungspunkt vor dem Aufraeumen. Buendelt die Arbeit, die seit dem
Abschluss der Avalonia-Portierung im Arbeitsverzeichnis lag.

Oberflaeche
- Entwurf aus Mockup/ umgesetzt: Theme.axaml (Farben je Thema, Barlow als
  mitgelieferte Schrift), Icons.axaml (Symbolgeometrien), Shell.axaml
  (eigene ControlThemes statt Fluent umzufaerben).
- Neue Steuerelemente StrokeIcon und BlueprintFrame, Seiten fuer
  Token-Verbrauch und Agenten-Chats, Werkzeug-Einstellungen als Seite
  statt eigenem Fenster, Texteditor-Fenster.
- ThemeManager mit hellem und dunklem Thema; die beiden Pinsel-Konverter
  entfallen, weil ein fester Farbwert den Themenwechsel nicht ueberlebt.

Rocket.Chat
- Neues Tool-Projekt (Client, Konfiguration, Workspace-Dateien) nach der
  Bauform des Telegram-Tools: rocketchat_poll als Tool-Job, geweckt wird
  nur, wenn wirklich etwas anliegt.
- send_file ist freigabepflichtig, send_message bewusst nicht: Der Raum
  ist Arbeitsraum, der Schutz sitzt an der Raum-Allowlist.
- Konzept-Doc um die Messung gegen die echte Instanz 8.7 ergaenzt; drei
  Annahmen waren falsch und sind korrigiert.

Deploymentcenter
- DC6 (Update anwenden) und DC7 (Erstinstallation ueber setup.json)
  erledigt, DC3 fuer win-x64/dev; deploy/publish.py als Release-Strecke.
- AppHost.DisposeAsync gegen doppeltes Herunterfahren gesperrt - sonst
  ueberschreibt eine zweite Abmeldung den Wartungszustand am Watchdog.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 12:16:05 +02:00

31 lines
1.0 KiB
C#

using Avalonia.Controls;
using Avalonia.Input;
using ClawdDotNet.Desktop.ViewModels;
namespace ClawdDotNet.Desktop.Views;
public partial class InstancePickerWindow : Window
{
public InstancePickerWindow()
{
InitializeComponent();
// Doppelklick auf eine Zeile bestaetigt — wie in der WinForms-Fassung.
//
// Der Behandler haengt an der Liste und nicht mehr am Fenster: Am Fenster loeste
// auch ein Doppelklick ins Namensfeld die Auswahl aus, was seit dem Umbau
// deutlich leichter passiert, weil das Feld gross und mittig steht.
InstanceList.AddHandler(DoubleTappedEvent, OnRowDoubleTapped, handledEventsToo: false);
}
private void OnRowDoubleTapped(object? sender, TappedEventArgs e)
{
if (DataContext is not InstancePickerViewModel vm) return;
// Getroffen wird irgendein Element in der Zeile; der Datenkontext ist derselbe.
if ((e.Source as Control)?.DataContext is not InstanceChoiceViewModel choice) return;
vm.ActivateCommand.Execute(choice);
}
}