Changeset 2293


Ignore:
Timestamp:
1/4/2011 6:29:53 AM (4 years ago)
Author:
lowjoel
Message:

Rename the PluginInstance? class to be the PluginInfo? class.

Location:
branches/eraser6/pluginsRewrite
Files:
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/eraser6/pluginsRewrite/Eraser.Manager/Settings.cs

    r2288 r2293  
    376376 
    377377            //We have not computed the value. Compute the default. 
    378             Host pluginHost = Host.Instance; 
    379             IList<PluginInstance> plugins = pluginHost.Plugins; 
     378            IList<PluginInfo> plugins = Host.Instance.Plugins; 
    380379            SortedList<int, Guid> priorities = new SortedList<int, Guid>(); 
    381380 
    382             foreach (PluginInstance plugin in plugins) 
     381            foreach (PluginInfo plugin in plugins) 
    383382            { 
    384383                //Check whether the plugin is signed by us. 
  • branches/eraser6/pluginsRewrite/Eraser.Plugins/Eraser.Plugins.csproj

    r2292 r2293  
    5454    <Compile Include="IRegistrar.cs" /> 
    5555    <Compile Include="LoadingPolicy.cs" /> 
    56     <Compile Include="PluginInstance.cs" /> 
     56    <Compile Include="PluginInfo.cs" /> 
    5757    <Compile Include="PluginLoadedEventArgs.cs" /> 
    5858    <Compile Include="PluginLoadEventArgs.cs" /> 
  • branches/eraser6/pluginsRewrite/Eraser.Plugins/PluginInfo.cs

    r2292 r2293  
    2929using System.Security.Cryptography; 
    3030using System.Security.Cryptography.X509Certificates; 
     31using System.IO; 
    3132 
    3233using Eraser.Util; 
     
    3839    /// Structure holding the instance values of the plugin like handle and path. 
    3940    /// </summary> 
    40     public class PluginInstance 
     41    public class PluginInfo 
    4142    { 
    4243        /// <summary> 
     
    4647        /// <param name="path">The path to the ass</param> 
    4748        /// <param name="plugin"></param> 
    48         internal PluginInstance(Assembly assembly, IPlugin plugin) 
     49        internal PluginInfo(Assembly assembly, IPlugin plugin) 
    4950        { 
    5051            Assembly = assembly; 
     
    6162 
    6263        /// <summary> 
     64        /// Executes the plugin's initialisation routine. 
     65        /// </summary> 
     66        /// <param name="host">The host for the plugin</param> 
     67        internal void Load(Host host) 
     68        { 
     69            Assembly = Assembly.Load(Assembly.GetName()); 
     70 
     71            try 
     72            { 
     73                //Iterate over every exported type, checking for the IPlugin implementation 
     74                Type typePlugin = Assembly.GetExportedTypes().First( 
     75                    type => type.GetInterface("Eraser.Manager.Plugin.IPlugin", true) != null); 
     76                if (typePlugin == null) 
     77                    throw new FileLoadException(S._("Could not load the plugin."), 
     78                        Assembly.Location); 
     79 
     80                //Initialize the plugin 
     81                Plugin = (IPlugin)Activator.CreateInstance(Assembly.GetType(typePlugin.ToString())); 
     82                Plugin.Initialize(host); 
     83            } 
     84            catch (System.Security.SecurityException e) 
     85            { 
     86                throw new FileLoadException(S._("Could not load the plugin."), 
     87                    Assembly.Location, e); 
     88            } 
     89        } 
     90 
     91        /// <summary> 
    6392        /// Gets the Assembly this plugin instance came from. 
    6493        /// </summary> 
     
    6998                return assembly; 
    7099            } 
    71             internal set 
     100            private set 
    72101            { 
    73102                assembly = value; 
     
    106135        /// therefore cannot be disabled.) 
    107136        /// </summary> 
    108         public LoadingPolicy LoadingPolicy { get; internal set; } 
     137        public LoadingPolicy LoadingPolicy { get; private set; } 
    109138 
    110139        /// <summary> 
     
    112141        /// if the plugin was not loaded. 
    113142        /// </summary> 
    114         public IPlugin Plugin { get; internal set; } 
     143        public IPlugin Plugin { get; private set; } 
    115144 
    116145        /// <summary> 
  • branches/eraser6/pluginsRewrite/Eraser.Plugins/PluginLoadEventArgs.cs

    r2289 r2293  
    3838        /// <param name="info">The plugin information to be passed to the approving 
    3939        /// delegate.</param> 
    40         internal PluginLoadEventArgs(PluginInstance info) 
     40        internal PluginLoadEventArgs(PluginInfo info) 
    4141        { 
    4242            Plugin = info; 
     
    4747        /// Gets the plugin associated with this event. 
    4848        /// </summary> 
    49         public PluginInstance Plugin { get; private set; } 
     49        public PluginInfo Plugin { get; private set; } 
    5050 
    5151        /// <summary> 
  • branches/eraser6/pluginsRewrite/Eraser.Plugins/PluginLoadedEventArgs.cs

    r2289 r2293  
    3636        /// </summary> 
    3737        /// <param name="instance">The plugin instance of the recently loaded plugin.</param> 
    38         public PluginLoadedEventArgs(PluginInstance instance) 
     38        public PluginLoadedEventArgs(PluginInfo info) 
    3939        { 
    40             Instance = instance; 
     40            Plugin = info; 
    4141        } 
    4242 
     
    4444        /// The <see cref="PluginInstance"/> object representing the newly loaded plugin. 
    4545        /// </summary> 
    46         public PluginInstance Instance { get; private set; } 
     46        public PluginInfo Plugin { get; private set; } 
    4747    } 
    4848} 
  • branches/eraser6/pluginsRewrite/Eraser/SettingsPanel.cs

    r2209 r2293  
    3434 
    3535using Eraser.Manager; 
    36 using Eraser.Manager.Plugin; 
     36using Eraser.Plugins; 
    3737using Eraser.Util; 
    3838using Eraser.Util.ExtensionMethods; 
     
    5959        { 
    6060            ListViewItem item = new ListViewItem(); 
    61             if (e.Instance.Plugin == null) 
    62             { 
    63                 item.Text = System.IO.Path.GetFileNameWithoutExtension(e.Instance.Assembly.Location); 
    64                 item.SubItems.Add(e.Instance.AssemblyInfo.Author); 
     61            if (e.Plugin.Loaded) 
     62            { 
     63                item.Text = e.Plugin.Plugin.Name; 
     64                item.SubItems.Add(e.Plugin.Plugin.Author); 
    6565            } 
    6666            else 
    6767            { 
    68                 item.Text = e.Instance.Plugin.Name; 
    69                 item.SubItems.Add(e.Instance.Plugin.Author); 
    70             } 
    71  
     68                item.Text = System.IO.Path.GetFileNameWithoutExtension(e.Plugin.Assembly.Location); 
     69                item.SubItems.Add(e.Plugin.AssemblyInfo.Author); 
     70            } 
     71             
    7272            //The item is checked if the plugin was given the green light to load 
    73             item.Checked = e.Instance.Plugin != null || 
     73            item.Checked = e.Plugin.Plugin != null || 
    7474                (Manager.ManagerLibrary.Settings.PluginApprovals.ContainsKey( 
    75                     e.Instance.AssemblyInfo.Guid) && Manager.ManagerLibrary. 
    76                     Settings.PluginApprovals[e.Instance.AssemblyInfo.Guid] 
     75                    e.Plugin.AssemblyInfo.Guid) && Manager.ManagerLibrary. 
     76                    Settings.PluginApprovals[e.Plugin.AssemblyInfo.Guid] 
    7777                ); 
    7878 
    7979            //Visually display the other metadata associated with the assembly 
    80             item.ImageIndex = e.Instance.AssemblyAuthenticode == null ? -1 : 0; 
    81             item.Group = e.Instance.LoadingPolicy == LoadingPolicy.Core ? 
     80            item.ImageIndex = e.Plugin.AssemblyAuthenticode == null ? -1 : 0; 
     81            item.Group = e.Plugin.LoadingPolicy == LoadingPolicy.Core ? 
    8282                pluginsManager.Groups[0] : pluginsManager.Groups[1]; 
    83             item.SubItems.Add(e.Instance.Assembly.GetFileVersion().ToString()); 
    84             item.SubItems.Add(e.Instance.Assembly.Location); 
    85             item.Tag = e.Instance; 
     83            item.SubItems.Add(e.Plugin.Assembly.GetFileVersion().ToString()); 
     84            item.SubItems.Add(e.Plugin.Assembly.Location); 
     85            item.Tag = e.Plugin; 
    8686            pluginsManager.Items.Add(item); 
    8787        } 
     
    122122            //Load the list of plugins 
    123123            Host instance = Host.Instance; 
    124             IEnumerator<PluginInstance> i = instance.Plugins.GetEnumerator(); 
     124            IEnumerator<PluginInfo> i = instance.Plugins.GetEnumerator(); 
    125125            while (i.MoveNext()) 
    126126                OnNewPluginLoaded(this, new PluginLoadedEventArgs(i.Current)); 
     
    309309        { 
    310310            ListViewItem item = pluginsManager.Items[e.Index]; 
    311             PluginInstance instance = (PluginInstance)item.Tag; 
    312             if (instance.LoadingPolicy == LoadingPolicy.Core) 
     311            PluginInfo plugin = (PluginInfo)item.Tag; 
     312            if (plugin.LoadingPolicy == LoadingPolicy.Core) 
    313313                e.NewValue = CheckState.Checked; 
    314314        } 
     
    318318            if (pluginsManager.SelectedItems.Count == 1) 
    319319            { 
    320                 PluginInstance instance = (PluginInstance)pluginsManager.SelectedItems[0].Tag; 
    321                 e.Cancel = instance.Plugin == null || !instance.Plugin.Configurable; 
     320                PluginInfo plugin = (PluginInfo)pluginsManager.SelectedItems[0].Tag; 
     321                e.Cancel = !(plugin.Loaded && plugin.Plugin.Configurable); 
    322322            } 
    323323            else 
     
    330330                return; 
    331331 
    332             PluginInstance instance = (PluginInstance)pluginsManager.SelectedItems[0].Tag; 
    333             instance.Plugin.DisplaySettings(this); 
     332            PluginInfo plugin = (PluginInfo)pluginsManager.SelectedItems[0].Tag; 
     333            plugin.Plugin.DisplaySettings(this); 
    334334        } 
    335335 
     
    348348            foreach (ListViewItem item in pluginsManager.Items) 
    349349            { 
    350                 PluginInstance plugin = (PluginInstance)item.Tag; 
     350                PluginInfo plugin = (PluginInfo)item.Tag; 
    351351                Guid guid = plugin.AssemblyInfo.Guid; 
    352352                if (!pluginApprovals.ContainsKey(guid)) 
Note: See TracChangeset for help on using the changeset viewer.