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;
}
}
}