JD2022-TU1/main/tools/apps/ConfigurePlus/MainView.xaml.cs

124 lines
3.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using UAF.Application;
using UAF.WPF.Utils;
using ConfigurePlus.Models;
namespace ConfigurePlus
{
/// <summary>
/// Interaction logic for MainView.xaml
/// </summary>
public partial class MainView : UserControl
{
public MainView()
{
InitializeComponent();
}
public MainViewModel Model { get { return DataContext as MainViewModel; } }
public ProjectViewModel SelectedProject { get { return Model.SelectedProject; } }
private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
AutoFillProject();
}
private void AutoFillProject()
{
if (Model != null && SelectedProject != null && !String.IsNullOrEmpty(SelectedProject.ProjectId) && !String.IsNullOrEmpty(SelectedProject.PerforceServer))
{
SelectedProject.AutoFillProject();
}
}
private void DataPathBrowse_Click(object sender, RoutedEventArgs e)
{
BrowserHelper.BrowserInfo info = new BrowserHelper.BrowserInfo
{
SelectedPath = "",
InitialDirectory = SelectedProject.DataPath,
};
if (BrowserHelper.BrowseForFolder(info))
{
SelectedProject.DataPath = info.SelectedPath;
}
}
private void EnginePathBrowse_Click(object sender, RoutedEventArgs e)
{
BrowserHelper.BrowserInfo info = new BrowserHelper.BrowserInfo
{
SelectedPath = "",
InitialDirectory = SelectedProject.DataPath,
};
if (BrowserHelper.BrowseForFolder(info))
{
SelectedProject.EnginePath = info.SelectedPath;
}
}
private void SelectProjectButton_Click(object sender, RoutedEventArgs e)
{
Model.UpdateProjectInRegistry();
//Workspace.This.Logger.NotifyUser("Project change successful! ", "You are now using " + SelectedProject.Name + " project settings. ");
}
private void CreateNewButton_Click(object sender, RoutedEventArgs e)
{
ProjectViewModel project = Model.CreateProject();
Model.SelectedProject = project;
}
private void AutoFillButton_Click(object sender, RoutedEventArgs e)
{
AutoFillProject();
}
private void DeleteProjectButton_Click(object sender, RoutedEventArgs e)
{
Model.DeleteProject(SelectedProject);
}
private void RegisterAllButton_Click(object sender, RoutedEventArgs e)
{
ProjectViewModel firstProject = null;
foreach (object item in ProjectList.Items)
{
ProjectViewModel project = item as ProjectViewModel;
if (project != null)
{
Model.RegisterBranch(project);
if(firstProject == null)
firstProject = project;
}
}
// Register a default project too (legacy).
if (firstProject != null)
Model.UpdateProjectInRegistry(firstProject);
}
private void RegisterButton_Click(object sender, RoutedEventArgs e)
{
ProjectViewModel project = ProjectList.SelectedItem as ProjectViewModel;
if (project != null)
{
Model.RegisterBranch(project);
// Register by default project too (legacy).
Model.UpdateProjectInRegistry(project);
}
}
}
}