// // Copyright 2014 Perforce Software Inc. // using Perforce.Helper; using Perforce.Model; using Perforce.View; using System.Collections.Generic; using System.Windows.Controls; namespace Perforce.ViewModel { public enum SELECTOR_TYPE { WORKSPACE, SERVER, FAVORITE, PENDING, RECENT, TRASH, TAG, SEARCH, NONE } public abstract class SidebarSelectorViewModelBase : ViewModelBase { private string _labelText; private int _labelCount; private bool _showCount; private bool _isSelected; private bool _isEditable; private bool _isRefreshable = true; private Grid _currentGrid; private SidebarSelector _view; public SidebarSelectorViewModelBase(SidebarSelector view) { _view = view; CurrentSelection = new ListingItem[0]; } public string LabelText { get { return _labelText; } set { _labelText = value; OnPropertyChanged("LabelText"); } } public abstract SELECTOR_TYPE SelectorType { get; } public SidebarSelector View { get { return _view; } set { _view = value; } } public bool ShowCount { get { return _showCount; } set { _showCount = value; } } public int LabelCount { get { return _labelCount; } set { _labelCount = value; OnPropertyChanged("LabelCount"); OnPropertyChanged("HasCount"); } } public bool HasCount { get { if (ShowCount) { return LabelCount > 0; } else { return false; } } } public bool IsSelected { get { return _isSelected; } set { _isSelected = value; OnPropertyChanged("IsSelected"); } } public bool IsEditable { get { return _isEditable; } set { _isEditable = value; OnPropertyChanged("IsEditable"); } } public bool IsRefreshable { get { return _isRefreshable; } set { _isRefreshable = value; } } public bool ClientEnabled { get { var enabled = false; var helper = Utility.GetPerforceHelper(); if (helper != null) { enabled = helper.ClientEnabled; } return enabled; } } public virtual void Refresh() { if (_isRefreshable) { OnPropertyChanged(string.Empty); // UIHelper.RefreshView(_view); } } //public Grid Grid { // get { return _currentGrid; } // set { _currentGrid = value; } //} public ColumnDisplay CurrentColumn { get; set; } public ListingItem[] CurrentSelection { get; set; } } }