using DesktopTools.Models;
using System;

namespace DesktopTools.Interfaces
{
	/// <summary>
	/// Работа с контролом списка
	/// </summary>
	public interface IControlViewEntityList : IControl
	{
		/// <summary>
		/// Открытие формы
		/// </summary>
		/// <param name="model"></param>
		void OpenControl(ControlOpenModel model);

		/// <summary>
		/// Новый экземпляр контрола
		/// </summary>
		/// <returns></returns>
		IControl GetInstanceControl();

		/// <summary>
		/// Получение названиия объекта по его идентификатору
		/// </summary>
		/// <param name="id"></param>
		string GetTitleFromIdControl(Guid id);

		/// <summary>
		/// Сохранение настроек в xml-строку
		/// </summary>
		/// <returns></returns>
		string SaveControlToXml();

		/// <summary>
		/// Загрузка настроек из xml-строки
		/// </summary>
		/// <param name="xml"></param>
		void LoadControlFromXml(string xml);
	}
}