141 lines
4.3 KiB
C#
141 lines
4.3 KiB
C#
|
||
using System.Collections.ObjectModel;
|
||
|
||
using Microsoft.UI.Xaml.Controls;
|
||
using Newtonsoft.Json;
|
||
using RustTools.DataList;
|
||
using RustTools.Helpers;
|
||
using RustTools.muqing;
|
||
using RustTools.ViewModels;
|
||
using Windows.Storage;
|
||
using Windows.UI.Popups;
|
||
namespace RustTools.Views;
|
||
|
||
/// <summary>
|
||
/// Êý¾Ý¼¯ËéƬ
|
||
/// </summary>
|
||
public sealed partial class CodeDataPage : Page
|
||
{
|
||
public CodeDataViewModel ViewModel
|
||
{
|
||
get; set;
|
||
}
|
||
public ObservableCollection<DataBaseManifest> DataConfig { get; set; } = new();
|
||
public static DataBaseManifest codetable = new();
|
||
public CodeDataPage()
|
||
{
|
||
ViewModel = new CodeDataViewModel();
|
||
InitializeComponent();
|
||
|
||
var filePath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "CodeTable");
|
||
if (!Directory.Exists(filePath)) { return; }
|
||
var directoryInfo = new DirectoryInfo(filePath);
|
||
var directoryInfos = directoryInfo.GetDirectories();
|
||
foreach (var item in directoryInfos)
|
||
{
|
||
var v = Path.Combine(item.FullName, "DataBaseManifest.json");
|
||
if (File.Exists(v))
|
||
{
|
||
var json = JsonConvert.DeserializeObject<DataBaseManifest>(File.ReadAllText(v));
|
||
json.Dir = item.FullName;
|
||
//gj.sc(json.Dir);
|
||
DataConfig.Add(json);
|
||
|
||
}
|
||
}
|
||
var FirstOrDefault = DataConfig.FirstOrDefault(any => any.id == "official");
|
||
if (FirstOrDefault != null)
|
||
{
|
||
DataConfig.Remove(FirstOrDefault);
|
||
DataConfig.Insert(0, FirstOrDefault);
|
||
}
|
||
var aa = DataConfig.FirstOrDefault(any => any.Dir == codetable.Dir);
|
||
if (aa?.Dir == codetable.Dir)
|
||
{
|
||
listview.SelectedItem = aa;
|
||
}
|
||
}
|
||
|
||
private void listview_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||
{
|
||
if (e.AddedItems[0] is DataBaseManifest item)
|
||
{
|
||
var iniHelper = new IniHelper(IniHelper.FILE.Config);
|
||
iniHelper.SetValue("CodeTable", "Dir", item.Dir ?? string.Empty);
|
||
iniHelper.Save();
|
||
gj.sc(item.Dir);
|
||
codetable = item;
|
||
}
|
||
|
||
}
|
||
private async void MenuFlyoutItem_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
|
||
{
|
||
if (sender is MenuFlyoutItem item)
|
||
{
|
||
if (item.DataContext is DataBaseManifest data)
|
||
{
|
||
var str = item.Text;
|
||
if (str == "±à¼")
|
||
{
|
||
//´ò¿ªÏµÍ³Îļþ¼ÐÈÃÓû§×Ô¼ºÑ¡ÔñJson±àÒëÆ÷
|
||
wj.OpenFileExplorer(data.Dir);
|
||
}
|
||
else if (str == "ɾ³ý")
|
||
{
|
||
var contentDialog = new ContentDialog()
|
||
{
|
||
XamlRoot = Content.XamlRoot,
|
||
Title = "Ìáʾ",
|
||
Content = $"ÊÇ·ñɾ³ý {data.name}\nλÖà {data.Dir}",
|
||
CloseButtonText = "È¡Ïû"
|
||
};
|
||
if (data.id == "official")
|
||
{
|
||
contentDialog.Title = "¾¯¸æ";
|
||
contentDialog.Content = "ÎÞ·¨É¾³ý¹Ù·½Êý¾Ý¼¯";
|
||
}
|
||
else
|
||
{
|
||
contentDialog.PrimaryButtonText = "È·¶¨";
|
||
}
|
||
var contentDialogResult = await contentDialog.ShowAsync();
|
||
if (contentDialogResult == ContentDialogResult.Primary)
|
||
{
|
||
gj.sc("ɾ³ýÎļþ¼Ð" + data.Dir);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
private async void AppBarButton_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
|
||
{
|
||
if (sender is AppBarButton item)
|
||
{
|
||
var v = item.Tag.ToString();
|
||
if (v == "0")
|
||
{
|
||
//н¨
|
||
}
|
||
else if (v == "1")
|
||
{
|
||
//´ò¿ª
|
||
var v1 = Path.Combine(wj.LocalFolder, "CodeTable");
|
||
if (Directory.Exists(v1))
|
||
{
|
||
wj.OpenFileExplorer(v1);
|
||
}
|
||
else
|
||
{
|
||
await Dialog.DialogWarn("²»´æÔÚÎļþ¼Ð", XamlRoot);
|
||
}
|
||
}
|
||
else if (v == "2")
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|