public PluginStatusCollectionChangedEventArgs(IPluginStatusCollection c, ChangeStatus action, Guid pluginID, ConfigPluginStatus status) { Collection = c; Action = action; PluginID = pluginID; Status = status; }
public PluginStatusCollectionChangedEventArgs( IPluginStatusCollection c, ChangeStatus action, Guid pluginID, ConfigPluginStatus status ) { Collection = c; Action = action; PluginID = pluginID; Status = status; }
public ConfigPluginStatus GetStatus(Guid pluginID, ConfigPluginStatus defaultStatus) { if (_pluginStatusDic.ContainsKey(pluginID)) { return(_pluginStatusDic[pluginID].Status); } return(defaultStatus); }
internal void Change(ChangeStatus action, Guid pluginId, ConfigPluginStatus status) { _holder.OnPluginStatusCollectionChanged(action, pluginId, status); if (Changed != null) { PluginStatusCollectionChangedEventArgs e = new PluginStatusCollectionChangedEventArgs(this, action, pluginId, status); Changed(this, e); } }
internal void Change( ChangeStatus action, Guid pluginId, ConfigPluginStatus status ) { _holder.OnPluginStatusCollectionChanged( action, pluginId, status ); if( Changed != null ) { PluginStatusCollectionChangedEventArgs e = new PluginStatusCollectionChangedEventArgs( this, action, pluginId, status ); Changed( this, e ); } }
internal bool CanChange(ChangeStatus action, Guid pluginId, ConfigPluginStatus status) { if (Changing != null) { PluginStatusCollectionChangingEventArgs eCancel = new PluginStatusCollectionChangingEventArgs(this, action, pluginId, status); Changing(this, eCancel); return(!eCancel.Cancel); } return(true); }
internal bool CanChange( ChangeStatus action, Guid pluginId, ConfigPluginStatus status ) { if( Changing != null ) { PluginStatusCollectionChangingEventArgs eCancel = new PluginStatusCollectionChangingEventArgs( this, action, pluginId, status ); Changing( this, eCancel ); return !eCancel.Cancel; } return true; }
public void SetStatus( Guid pluginId, ConfigPluginStatus status ) { PluginStatus currentPluginStatus; if ( _pluginStatusDic.TryGetValue( pluginId, out currentPluginStatus ) ) { currentPluginStatus.Status = status; } else if ( CanChange( ChangeStatus.Add, pluginId, status ) ) { PluginStatus newStatus = new PluginStatus( this, pluginId, status ); _pluginStatusDic.Add( pluginId, newStatus ); Change( ChangeStatus.Add, pluginId, status ); } }
public void SetStatus(Guid pluginId, ConfigPluginStatus status) { PluginStatus currentPluginStatus; if (_pluginStatusDic.TryGetValue(pluginId, out currentPluginStatus)) { currentPluginStatus.Status = status; } else if (CanChange(ChangeStatus.Add, pluginId, status)) { PluginStatus newStatus = new PluginStatus(this, pluginId, status); _pluginStatusDic.Add(pluginId, newStatus); Change(ChangeStatus.Add, pluginId, status); } }
SolvedConfigStatus SolveStatus(Guid pluginId) { // Set default status/actions ConfigPluginStatus finalStatus = ConfigPluginStatus.Manual; ConfigUserAction userAction = ConfigUserAction.None; if (finalStatus != ConfigPluginStatus.Disabled) { // Gets the systemStatus, if any. ConfigPluginStatus systemStatus = _cfg.GetSystemConfiguration(false).PluginStatusCollection.GetStatus(pluginId, finalStatus); // Sets it if more restrictive if (systemStatus > finalStatus || systemStatus == ConfigPluginStatus.Disabled) { finalStatus = systemStatus; } if (finalStatus != ConfigPluginStatus.Disabled) { // Gets the user status, if any. ConfigPluginStatus userStatus = _cfg.GetUserConfiguration(false).PluginStatusCollection.GetStatus(pluginId, finalStatus); // Sets it if more restrictive. if (userStatus > finalStatus || userStatus == ConfigPluginStatus.Disabled) { finalStatus = userStatus; } if (finalStatus != ConfigPluginStatus.Disabled) { // Gets the UserAction, if any. userAction = _cfg.GetUserConfiguration(false).LiveUserConfiguration.GetAction(pluginId); } } } // Solves UserAction and finalStatus SolvedConfigStatus solvedStatus = finalStatus == ConfigPluginStatus.Disabled ? SolvedConfigStatus.Disabled : SolvedConfigStatus.Optional; if (userAction == ConfigUserAction.Started || (finalStatus == ConfigPluginStatus.AutomaticStart && userAction != ConfigUserAction.Stopped)) { solvedStatus = SolvedConfigStatus.MustExistAndRun; } else if (userAction == ConfigUserAction.Stopped) { solvedStatus = SolvedConfigStatus.Disabled; } return(solvedStatus); }
public VMIPlugin( VMIContextViewModel ctx, IPluginInfo plugin, VMIBase parent ) : base(ctx, parent) { _pluginInfo = plugin; Label = plugin.PublicName; Assembly = plugin.AssemblyInfo.AssemblyName; DetailsTemplateName = "PluginDetails"; _systemPluginStatus = VMIContext.Context.ConfigManager.SystemConfiguration.PluginsStatus.GetStatus( Id, ConfigPluginStatus.Manual ); _userPluginStatus = VMIContext.Context.ConfigManager.UserConfiguration.PluginsStatus.GetStatus( Id, ConfigPluginStatus.Manual ); _pluginRunner = VMIContext.Context.GetService<PluginRunner>( true ); _pluginRunner.ApplyDone += new EventHandler<ApplyDoneEventArgs>( OnApplyDone ); VMIContext.Context.ConfigManager.UserConfiguration.LiveUserConfiguration.Changed += new EventHandler<LiveUserConfigurationChangedEventArgs>( OnLiveUserConfigurationChanged ); VMIContext.Context.ConfigManager.SystemConfiguration.PluginsStatus.Changed += new EventHandler<PluginStatusCollectionChangedEventArgs>( OnSystemPluginStatusChanged ); VMIContext.Context.ConfigManager.UserConfiguration.PluginsStatus.Changed += new EventHandler<PluginStatusCollectionChangedEventArgs>( OnUserPluginStatusChanged ); VMIContext.Context.ConfigManager.UserConfiguration.PropertyChanged += new PropertyChangedEventHandler( OnUserConfigurationChanged ); VMIContext.Context.ConfigManager.SystemConfiguration.PropertyChanged += new PropertyChangedEventHandler( OnSystemConfigurationChanged ); CreateCommands(); IList<IPluginInfo> editableBy = new List<IPluginInfo>(); foreach( IPluginConfigAccessorInfo p in plugin.EditableBy ) editableBy.Add( p.Plugin ); _canEdit = new List<IPluginInfo>(); foreach( IPluginConfigAccessorInfo p in _pluginInfo.EditorsInfo ) _canEdit.Add( p.EditedSource ); IList<IPluginInfo> required = new List<IPluginInfo>(); _vmRequirementLayers = new List<VMIPluginRequirementLayer>(); foreach( RequirementLayer layer in RequirementLayers ) { _vmRequirementLayers.Add( new VMIPluginRequirementLayer( this, layer ) ); } ServiceRefs = new VMCollection<VMAlias<VMIService>, IServiceReferenceInfo>( plugin.ServiceReferences, ( info ) => { return new VMAlias<VMIService>( VMIContext.FindOrCreate( info ), this ); } ); CanEdit = new VMCollection<VMAlias<VMIPlugin>, IPluginInfo>( new CKReadOnlyListOnIList<IPluginInfo>( _canEdit ), ( info ) => { return new VMAlias<VMIPlugin>( VMIContext.FindOrCreate( info ), this ); } ); EditableBy = new VMCollection<VMAlias<VMIPlugin>, IPluginInfo>( new CKReadOnlyListOnIList<IPluginInfo>( editableBy ), ( info ) => { return new VMAlias<VMIPlugin>( VMIContext.FindOrCreate( info ), this ); } ); }
public void ReadContent(IStructuredReader sr) { XmlReader r = sr.Xml; r.Read(); Dictionary <Guid, PluginStatus> newContent = new Dictionary <Guid, PluginStatus>(); while (r.IsStartElement("PluginStatus")) { Guid guid = new Guid(r.GetAttribute("Guid")); ConfigPluginStatus status = (ConfigPluginStatus)Enum.Parse(typeof(ConfigPluginStatus), r.GetAttribute("Status")); newContent[guid] = new PluginStatus(this, guid, status); r.Skip(); } _pluginStatusDic.Clear(); _pluginStatusDic.AddRange(newContent); //may eventually be replaced by some code in SolvedPluginConfiguration //Without that, SolvedPluginConfiguration's ResolveConfiguration method is not called Change(ChangeStatus.ContainerUpdate, Guid.Empty, 0); }
internal void OnPluginStatusCollectionChanged( ChangeStatus action, Guid pluginId, ConfigPluginStatus status ) { OnCollectionChanged(); }
public ConfigPluginStatus GetStatus( Guid pluginID, ConfigPluginStatus defaultStatus ) { if( _pluginStatusDic.ContainsKey( pluginID ) ) return _pluginStatusDic[pluginID].Status; return defaultStatus; }
private void RefreshSystemPluginStatus() { _systemPluginStatus = VMIContext.Context.ConfigManager.SystemConfiguration.PluginsStatus.GetStatus( Id, ConfigPluginStatus.Manual ); OnPropertyChanged( "SystemPluginStatus" ); }
void RefreshUserPluginStatus() { _userPluginStatus = VMIContext.Context.ConfigManager.UserConfiguration.PluginsStatus.GetStatus( Id, ConfigPluginStatus.Manual ); OnPropertyChanged( "UserPluginStatus" ); }
public PluginStatus(PluginStatusCollection holder, Guid pluginId, ConfigPluginStatus status) { _holder = holder; _pluginId = pluginId; _status = status; }
internal void OnPluginStatusCollectionChanged(ChangeStatus action, Guid pluginId, ConfigPluginStatus status) { OnCollectionChanged(); }