mirror of
https://onedev.site.tesses.net/crosslang/crosslangdevstudio
synced 2026-02-08 09:15:45 +00:00
New dev build
This commit is contained in:
46
Views/InstallPackageDialog.axaml
Normal file
46
Views/InstallPackageDialog.axaml
Normal file
@@ -0,0 +1,46 @@
|
||||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:CrossLangDevStudio.ViewModels"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
Width="320"
|
||||
Height="120"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
x:Class="CrossLangDevStudio.Views.InstallPackageDialog"
|
||||
x:DataType="vm:InstallPackageDialogViewModel"
|
||||
Icon="/Assets/crosslang.ico"
|
||||
Title="Install Package">
|
||||
<Design.DataContext>
|
||||
<!-- This only sets the DataContext for the previewer in an IDE,
|
||||
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
|
||||
<vm:InstallPackageDialogViewModel/>
|
||||
</Design.DataContext>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<ComboBox Grid.Row="1" ItemsSource="{Binding Versions}" HorizontalAlignment="Stretch" SelectedIndex="{Binding VersionIndex}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Text}"/>
|
||||
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
<Grid Grid.Row="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="Install" Grid.Column="1" Command="{Binding InstallCommand}" />
|
||||
<Button Content="Cancel" Grid.Column="2" Command="{Binding CancelCommand}" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Window>
|
||||
21
Views/InstallPackageDialog.axaml.cs
Normal file
21
Views/InstallPackageDialog.axaml.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.Diagnostics;
|
||||
using Avalonia.Controls;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
using CrossLangDevStudio.Messages;
|
||||
|
||||
namespace CrossLangDevStudio.Views;
|
||||
|
||||
public partial class InstallPackageDialog : Window
|
||||
{
|
||||
public InstallPackageDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
if (Design.IsDesignMode) return;
|
||||
|
||||
WeakReferenceMessenger.Default.Register<InstallPackageDialog, InstallPackageResponseMessage>(this, static (w, m) =>
|
||||
{
|
||||
w.Close(m.Version);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,7 @@
|
||||
<MenuItem Header="_Open Project" HotKey="Ctrl+O" Command="{Binding OpenProjectCommand}"/>
|
||||
<MenuItem Header="_Save" HotKey="Ctrl+S" Command="{Binding SaveCommand}"/>
|
||||
<MenuItem Header="Save All" HotKey="Ctrl+Shift+S" Command="{Binding SaveAllCommand}"/>
|
||||
<MenuItem Header="CrossLang Settings"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="_Exit" HotKey="Alt+F4"/>
|
||||
</MenuItem>
|
||||
@@ -38,6 +39,23 @@
|
||||
<MenuItem Header="Open In Terminal" HotKey="CTRL+T" Command="{Binding OpenProjectInTerminalCommand}" />
|
||||
<MenuItem Header="Refresh" HotKey="CTRL+R" Command="{Binding RefreshListingCommand}" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="_CPKG">
|
||||
<MenuItem Header="Add Package"/>
|
||||
<MenuItem Header="Install">
|
||||
<MenuItem Header="Template"/>
|
||||
<MenuItem Header="Tool"/>
|
||||
<MenuItem Header="Web Application"/>
|
||||
<MenuItem Header="Console Application"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Push Package"/>
|
||||
<MenuItem Header="Manage Servers"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Help">
|
||||
|
||||
<MenuItem Header="Welcome"/>
|
||||
<MenuItem Header="Website"/>
|
||||
<MenuItem Header="Documentation"/>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
<Grid Grid.Row="1" ColumnDefinitions="300, 4, *">
|
||||
<TreeView Grid.Column="0" ItemsSource="{Binding ProjectFiles}" SelectedItem="{Binding SelectedProjectFile}">
|
||||
|
||||
@@ -28,6 +28,15 @@ public partial class MainWindow : Window
|
||||
// Show dialog window and reply with returned AlbumViewModel or null when the dialog is closed.
|
||||
m.Reply(dialog.ShowDialog<string?>(w));
|
||||
});
|
||||
WeakReferenceMessenger.Default.Register<MainWindow, InstallPackageMessage>(this, static (w, m) =>
|
||||
{
|
||||
var dialog = new InstallPackageDialog
|
||||
{
|
||||
DataContext = new InstallPackageDialogViewModel(m)
|
||||
};
|
||||
|
||||
m.Reply(dialog.ShowDialog<CrossLangVersion?>(w));
|
||||
});
|
||||
WeakReferenceMessenger.Default.Register<MainWindow, GetWindowMessage>(this, static (w, m) =>
|
||||
{
|
||||
m.Reply(w);
|
||||
|
||||
76
Views/PackageManagerView.axaml
Normal file
76
Views/PackageManagerView.axaml
Normal file
@@ -0,0 +1,76 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:vm="clr-namespace:CrossLangDevStudio.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="CrossLangDevStudio.Views.PackageManagerView"
|
||||
x:DataType="vm:PackageManagerViewModel">
|
||||
<Design.DataContext>
|
||||
<!-- This only sets the DataContext for the previewer in an IDE,
|
||||
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
|
||||
<vm:PackageManagerViewModel />
|
||||
</Design.DataContext>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox Grid.Column="0" Text="{Binding Search}" Watermark="Search..." />
|
||||
<ComboBox Grid.Column="1" ItemsSource="{Binding Servers}" SelectedIndex="{Binding ServerIndex}" />
|
||||
<Button Grid.Column="2" Content="Search" Command="{Binding SearchPackagesCommand}" />
|
||||
</Grid>
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto">
|
||||
<ItemsControl ItemsSource="{Binding PackageList}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="64" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Grid.Column="0" Source="{Binding Icon}" />
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="{Binding Name}"/>
|
||||
<TextBlock Grid.Row="1" Text="{Binding Info}"/>
|
||||
<TextBlock Grid.Row="2" Text="{Binding Description}"/>
|
||||
</Grid>
|
||||
<Grid Grid.Column="2">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<SplitButton Grid.Row="0" Content="{Binding MainButtonText}" Command="{Binding MainButtonCommand}">
|
||||
<SplitButton.Flyout>
|
||||
<MenuFlyout Placement="Bottom">
|
||||
<MenuItem Header="{Binding SubButton1Text}" Command="{Binding SubButton1Command}" />
|
||||
<MenuItem Header="Info" IsVisible="{Binding IsInstalled}" Command="{Binding SubButton2Command}" />
|
||||
</MenuFlyout>
|
||||
</SplitButton.Flyout>
|
||||
</SplitButton>
|
||||
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
</UserControl>
|
||||
11
Views/PackageManagerView.axaml.cs
Normal file
11
Views/PackageManagerView.axaml.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace CrossLangDevStudio.Views;
|
||||
|
||||
public partial class PackageManagerView : UserControl
|
||||
{
|
||||
public PackageManagerView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user