// // Copyright 2014 Perforce Software Inc. // using Perforce.P4; using Perforce.ViewModel; using System.ComponentModel; using System.Data; using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace Perforce.View { /// /// Interaction logic for SubmitForm.xaml /// public partial class SubmitForm : UserControl { private SubmitFormViewModel _model; public SubmitForm(int changeId = 0, string[] selected = null) { InitializeComponent(); _model = new SubmitFormViewModel(changeId, selected); this.DataContext = _model; } public SubmitFormViewModel Model { get { return _model; } set { _model = value; } } public void RefreshForm() { _model.RefreshAll(); UpdateSubmitButton(); } public Technewlogic.WpfDialogManagement.Contracts.ICustomContentDialog ParentDialog { get; set; } private void SelectAll_Checked(object sender, RoutedEventArgs e) { foreach (var i in _model.ChangelistFiles) { i.Selected = true; } } private void SelectAll_Unchecked(object sender, RoutedEventArgs e) { foreach (var i in _model.ChangelistFiles) { i.Selected = false; } } private bool SomethingSelected() { var foundSelected = false; foreach (var i in _model.ChangelistFiles) { if (i.Selected) { foundSelected = true; break; } } return foundSelected; } private void UpdateSubmitButton() { if (SomethingSelected() && DescriptionText.Text.Trim().Length > 0) { ParentDialog.CanOk = true; } else { ParentDialog.CanOk = false; } } private void DescriptionText_KeyUp(object sender, KeyEventArgs e) { UpdateSubmitButton(); } private void CheckBox_Click(object sender, RoutedEventArgs e) { var item = ChangelistFiles.SelectedItem as ChangelistFile; if (item != null) { if (item.Action == FileAction.MoveAdd || item.Action == FileAction.MoveDelete) { var helper = Utility.GetPerforceHelper(); var md = helper.GetFileMetaData(item.Path); foreach (var f in _model.ChangelistFiles) { if (f.Path.Equals(md.MovedFile.Path, System.StringComparison.CurrentCultureIgnoreCase)) { f.Selected = item.Selected; } } } } UpdateSubmitButton(); } } }