using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using Tango.BL.Entities; using Tango.Integration.ExternalBridge; namespace Tango.MachineStudio.Common.StudioApplication { /// /// Represents the Machine Studio application manager. /// public interface IStudioApplicationManager : INotifyPropertyChanged { /// /// Occurs when the application is ready. /// event EventHandler ApplicationReady; /// /// Occurs when the connected machine session has been lost and an automatic reconnection with the last machine is required. /// event EventHandler ReconnectionRequired; /// /// Occurs when the connected machine property has changed. /// event EventHandler ConnectedMachineChanged; /// /// Gets a value indicating whether Machine Studio is shutting down. /// bool IsShuttingDown { get; } /// /// Shutdown the application. /// void ShutDown(); /// /// Gets or sets the currently connected machine if any. /// IExternalBridgeClient ConnectedMachine { get; } /// /// Gets or sets the machine. /// Machine Machine { get; } /// /// Gets a value indicating whether the is valid. /// bool IsMachineConnected { get; } /// /// Gets a value indicating whether the is valid and connected through TCP/IP. /// bool IsMachineConnectedViaTCP { get; } /// /// Gets the machine studio application version. /// Version Version { get; } /// /// Gets the core libraries version. /// Version CoreVersion { get; } /// /// Gets the build date. /// String BuildDate { get; } /// /// Gets the change log. /// String ChangeLog { get; } /// /// Notify the application manager about an external opened window. /// When application exists. All registered windows will be closed. /// /// The window. void RegisterOpenedWindow(Window window); /// /// Raises the application ready event. /// void NotifyApplicationReady(); /// /// Sets the connected machine. /// /// The connected machine. void SetConnectedMachine(IExternalBridgeClient connectedMachine); } }