using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; using Tango.Scripting; using Tango.SharedUI; namespace Tango.Stubs.ViewModels { /// /// Represents a single script editor tab view model; /// /// public class CodeTabVM : ViewModel { private String _title; /// /// Gets or sets the script title/file name. /// public String Title { get { return File != null ? Path.GetFileName(File) : _title; } set { _title = value; RaisePropertyChanged(nameof(Title)); } } private String _file; /// /// Gets or sets the full script file path. /// public String File { get { return _file; } set { _file = value; RaisePropertyChanged(nameof(File)); RaisePropertyChanged(nameof(Title)); } } private String _code; /// /// Gets or sets the script code. /// public String Code { get { return _code; } set { _code = value; RaisePropertyChanged(nameof(Code)); } } private bool _isRunning; /// /// Gets or sets a value indicating whether this instance is running. /// public bool IsRunning { get { return _isRunning; } set { _isRunning = value; RaisePropertyChangedAuto(); } } private RelayCommand _insertCodeSnippetCommand; /// /// Gets or sets the insert snippet command. (Inserts stub snippet to editor) /// public RelayCommand InsertSnippetCommand { get { return _insertCodeSnippetCommand; } set { _insertCodeSnippetCommand = value; RaisePropertyChanged(nameof(InsertSnippetCommand)); } } private ObservableCollection _errors; /// /// Gets or sets the errors. /// public ObservableCollection Errors { get { return _errors; } set { _errors = value; RaisePropertyChangedAuto(); } } /// /// Initializes a new instance of the class. /// public CodeTabVM() { Title = "untitled"; Code = Properties.Resources.CodeTabTemplate; Errors = new ObservableCollection(); } /// /// Returns a that represents this instance. /// /// /// A that represents this instance. /// public override string ToString() { return Title; } } }