using Perforce.Helper; using Perforce.Model; using Perforce.ViewModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Perforce.View { /// /// Interaction logic for FavoriteSelector.xaml /// public partial class FavoriteSelector : UserControl { private FavoriteSelectorViewModel _model; public FavoriteSelector(FavoriteFolderItem item) { InitializeComponent(); _model = new FavoriteSelectorViewModel(item); this.DataContext = _model; } public FavoriteSelectorViewModel Model { get { return _model; } set { _model = value; } } public FavoriteFolderItem Item { get { return _model.Item; } set { _model.Item = value; } } private void EditLabel() { EditBox.Text = _model.LabelText; EditBox.Visibility = System.Windows.Visibility.Visible; MainLabel.Visibility = System.Windows.Visibility.Hidden; } private void MenuItem_Click(object sender, RoutedEventArgs e) { MenuItem mi = sender as MenuItem; switch (mi.Header.ToString().ToUpper()) { case ("EDIT"): EditLabel(); break; case ("DELETE"): CommandHelper.RemoveFromFavorites(_model.Item); break; } } private void EditBox_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Return) { var text = EditBox.Text.Trim(); if (text.Length > 0 && !_model.LabelText.Equals(text, StringComparison.CurrentCultureIgnoreCase)) { _model.LabelText = text; } EditBox.Visibility = System.Windows.Visibility.Hidden; MainLabel.Visibility = System.Windows.Visibility.Visible; } else if (e.Key == Key.Escape) { EditBox.Visibility = System.Windows.Visibility.Hidden; MainLabel.Visibility = System.Windows.Visibility.Visible; } } private void EditButton_MouseUp(object sender, MouseButtonEventArgs e) { EditLabel(); e.Handled = true; } private void Favorite_MouseUp(object sender, MouseButtonEventArgs e) { UIHelper.DisplayFavoriteFolder(_model.Item); e.Handled = true; } private void Favorite_MouseLeave(object sender, MouseEventArgs e) { EditBox.Visibility = System.Windows.Visibility.Hidden; MainLabel.Visibility = System.Windows.Visibility.Visible; } } }