mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-06 15:17:34 +00:00
124 lines
5.1 KiB
C#
124 lines
5.1 KiB
C#
using Microsoft.WindowsAPICodePack.Dialogs;
|
|
using ServerManagerTool.Common.Utils;
|
|
using ServerManagerTool.Plugin.Common;
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using WPFSharp.Globalizer;
|
|
|
|
namespace ServerManagerTool
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for PluginsWindow.xaml
|
|
/// </summary>
|
|
public partial class PluginsWindow : Window
|
|
{
|
|
private readonly GlobalizedApplication _globalizer = GlobalizedApplication.Instance;
|
|
|
|
public static readonly DependencyProperty PluginHelperInstanceProperty = DependencyProperty.Register(nameof(PluginHelperInstance), typeof(PluginHelper), typeof(PluginsWindow));
|
|
|
|
public PluginsWindow()
|
|
{
|
|
this.PluginHelperInstance = PluginHelper.Instance;
|
|
|
|
InitializeComponent();
|
|
WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile);
|
|
|
|
this.DataContext = this;
|
|
}
|
|
|
|
public PluginHelper PluginHelperInstance
|
|
{
|
|
get { return GetValue(PluginHelperInstanceProperty) as PluginHelper; }
|
|
set { SetValue(PluginHelperInstanceProperty, value); }
|
|
}
|
|
|
|
private void AddPlugin_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var dialog = new CommonOpenFileDialog();
|
|
dialog.Title = GlobalizedApplication.Instance.GetResourceString("PluginsWindow_AddDialogTitle");
|
|
dialog.DefaultExtension = GlobalizedApplication.Instance.GetResourceString("PluginsWindow_PluginDefaultExtension");
|
|
dialog.Filters.Add(new CommonFileDialogFilter(GlobalizedApplication.Instance.GetResourceString("PluginsWindow_AddFilterLabel"), GlobalizedApplication.Instance.GetResourceString("PluginsWindow_AddFilterExtension")));
|
|
if (dialog == null || dialog.ShowDialog(this) != CommonFileDialogResult.Ok)
|
|
return;
|
|
|
|
try
|
|
{
|
|
var installPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
|
PluginHelperInstance.AddPlugin(installPath, dialog.FileName);
|
|
}
|
|
catch (PluginException ex)
|
|
{
|
|
MessageBox.Show(ex.Message, _globalizer.GetResourceString("PluginsWindow_AddErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
catch
|
|
{
|
|
MessageBox.Show(_globalizer.GetResourceString("PluginsWindow_AddErrorLabel"), _globalizer.GetResourceString("PluginsWindow_AddErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
}
|
|
|
|
private void ClearPlugins_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (MessageBox.Show(_globalizer.GetResourceString("PluginsWindow_ClearLabel"), _globalizer.GetResourceString("PluginsWindow_ClearTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
|
|
return;
|
|
|
|
try
|
|
{
|
|
PluginHelperInstance.DeleteAllPlugins();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, _globalizer.GetResourceString("PluginsWindow_ClearErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
}
|
|
|
|
private void ConfigPlugin_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
var pluginItem = ((PluginItem)((Button)e.Source).DataContext);
|
|
PluginHelperInstance.OpenConfigForm(pluginItem.Plugin, this);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, _globalizer.GetResourceString("PluginsWindow_ConfigErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
}
|
|
|
|
private void OpenPluginsFolder_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
Process.Start("explorer.exe", PluginHelper.PluginFolder);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, _globalizer.GetResourceString("PluginsWindow_OpenErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
}
|
|
|
|
private void PluginsForum_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Process.Start(Config.Default.ServerManagerPluginUrl);
|
|
}
|
|
|
|
private void RemovePlugin_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (MessageBox.Show(_globalizer.GetResourceString("PluginsWindow_DeleteLabel"), _globalizer.GetResourceString("PluginsWindow_DeleteTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
|
|
return;
|
|
|
|
try
|
|
{
|
|
var pluginItem = ((PluginItem)((Button)e.Source).DataContext);
|
|
PluginHelperInstance.DeletePlugin(pluginItem.PluginFile);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, _globalizer.GetResourceString("PluginsWindow_DeleteErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
}
|
|
}
|
|
}
|