using System; using System.IO; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Interactivity; using Avalonia.Platform.Storage; using CommandLineWrapper; using JVDesktop.ViewModels; namespace JVDesktop.Views; public partial class DashboardView : Window { public DashboardView() => InitializeComponent(); private void MoveWindow(object sender, PointerPressedEventArgs e) { if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed) BeginMoveDrag(e); } /// /// Select and setup workspace /// private async void SetupWorkspace(object? sender, RoutedEventArgs routedEventArgs) { var topLevel = GetTopLevel(this); if (topLevel == null) return; var storageProvider = topLevel.StorageProvider; var result = await storageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions { Title = "Select JustEnoughVCS Workspace", AllowMultiple = false }); if (result.Count > 0) { var selectedFolder = result[0]; var folderPath = selectedFolder.Path.LocalPath; if (Directory.Exists(folderPath)) { var workspace = new JVCSWorkspace(); await workspace.InitializeAsync(folderPath); if (workspace.SuccessInitialized) { if (DataContext is DashboardViewModel viewModel) viewModel.Workspace = workspace; } } } } }