private static void LoadFolder(string folder) { try { if (!loadedPlugins.ContainsKey(folder)) { PluginFinder pf = new PluginFinder(); IForwardDestinationHandler plugin = pf.Search <IForwardDestinationHandler>(folder, CheckType, ignoreList); if (plugin != null) { Type type = plugin.GetType(); PluginInfo pi = new PluginInfo(folder, type); LoadPlugin(pi, plugin); } } } catch (Exception ex) { // suppress any per-plugin loading exceptions Utility.WriteDebugInfo(String.Format("Plugin failed to load: '{0}' - {1} - {2}", folder, ex.Message, ex.StackTrace)); } }
public static Growl.Destinations.DestinationSettingsPanel GetSettingsPanel(Growl.Destinations.ForwardDestination fd) { IForwardDestinationHandler handler = GetHandler(fd); Growl.Destinations.DestinationSettingsPanel panel = handler.GetSettingsPanel(fd); return(panel); }
private static void LoadBuiltIn(IForwardDestinationHandler fdh) { if (fdh != null) { string path = Path.Combine(userForwarderDirectory, Growl.CoreLibrary.PathUtility.GetSafeFolderName(fdh.Name)); LoadInternal(fdh, null, path); } }
public ForwardDestinationListItem(string text, Image image, IForwardDestinationHandler ifdh) { this.text = text; this.image = image; this.ifdh = ifdh; }
private static void LoadInternal(IForwardDestinationHandler fdh, string installPath, string settingsPath) { string name = null; try { if (fdh != null) { name = fdh.Name; loadedHandlersList.Add(fdh); List <Type> list = fdh.Register(); foreach (Type type in list) { if (typeof(ForwardDestination).IsAssignableFrom(type)) { if (!loadedTypes.ContainsKey(type)) { lock (loadedTypes) { if (!loadedTypes.ContainsKey(type)) { loadedTypes.Add(type, fdh); } } } } } Utility.WriteDebugInfo(String.Format("Forwarder '{0}' was loaded successfully", name)); } } catch (Exception ex) { // suppress any per-plugin loading exceptions Utility.WriteDebugInfo(String.Format("Forwarder failed to load: '{0}' - {1} - {2}", name, ex.Message, ex.StackTrace)); } }
private static void LoadPlugin(PluginInfo pi, IForwardDestinationHandler ifdh) { try { // load if not already loaded if (ifdh == null) { PluginFinder pf = new PluginFinder(); ifdh = pf.Load <IForwardDestinationHandler>(pi, ignoreList); } if (ifdh != null) { // for the 'path' value, we still want to use the userprofile directory no matter where the plugin was loaded from // the reason is that the 'path' is where plugin settings will be saved, so it needs to be user writable and user-specific string path = Path.Combine(userForwarderDirectory, Growl.CoreLibrary.PathUtility.GetSafeFolderName(ifdh.Name)); // check to make sure this plugin was not loaded from another directory already if (!loadedPlugins.ContainsKey(path)) { loadedPlugins.Add(pi.FolderPath, pi); if (!loadedPlugins.ContainsKey(path)) { loadedPlugins.Add(path, pi); // link by the settings path as well so we can detect duplicate plugins in other folders } loadedPluginsList.Add(pi); LoadInternal(ifdh, pi.FolderPath, path); } else { // plugin was not valid Utility.WriteDebugInfo(String.Format("Forwarder not loaded: '{0}' - Duplicate plugin was already loaded from another folder", pi.FolderPath)); } } else { // plugin was not valid Utility.WriteDebugInfo(String.Format("Forwarder not loaded: '{0}' - Does not implement IForwardDestinationHandler interface", pi.FolderPath)); } } catch (Exception ex) { // suppress any per-plugin loading exceptions Utility.WriteDebugInfo(String.Format("Forwarder failed to load: '{0}' - {1} - {2}", pi.FolderPath, ex.Message, ex.StackTrace)); } }
public BonjourListItem(DetectedService ds, IForwardDestinationHandler ifdh) : base(ds.Service.Name, ds.Platform.GetIcon(), ifdh) { this.ds = ds; }
public ForwardDestinationListItem(string text, Image image, IForwardDestinationHandler ifdh) : base(text, image, ifdh) { }
private static void LoadPlugin(PluginInfo pi, IForwardDestinationHandler ifdh) { try { // load if not already loaded if (ifdh == null) { PluginFinder pf = new PluginFinder(); ifdh = pf.Load<IForwardDestinationHandler>(pi, ignoreList); } if (ifdh != null) { // for the 'path' value, we still want to use the userprofile directory no matter where the plugin was loaded from // the reason is that the 'path' is where plugin settings will be saved, so it needs to be user writable and user-specific string path = Path.Combine(userForwarderDirectory, Growl.CoreLibrary.PathUtility.GetSafeFolderName(ifdh.Name)); // check to make sure this plugin was not loaded from another directory already if (!loadedPlugins.ContainsKey(path)) { loadedPlugins.Add(pi.FolderPath, pi); if (!loadedPlugins.ContainsKey(path)) loadedPlugins.Add(path, pi); // link by the settings path as well so we can detect duplicate plugins in other folders loadedPluginsList.Add(pi); LoadInternal(ifdh, pi.FolderPath, path); } else { // plugin was not valid Utility.WriteDebugInfo(String.Format("Forwarder not loaded: '{0}' - Duplicate plugin was already loaded from another folder", pi.FolderPath)); } } else { // plugin was not valid Utility.WriteDebugInfo(String.Format("Forwarder not loaded: '{0}' - Does not implement IForwardDestinationHandler interface", pi.FolderPath)); } } catch (Exception ex) { // suppress any per-plugin loading exceptions Utility.WriteDebugInfo(String.Format("Forwarder failed to load: '{0}' - {1} - {2}", pi.FolderPath, ex.Message, ex.StackTrace)); } }
private static void LoadInternal(IForwardDestinationHandler fdh, string installPath, string settingsPath) { string name = null; try { if (fdh != null) { name = fdh.Name; loadedHandlersList.Add(fdh); List<Type> list = fdh.Register(); foreach (Type type in list) { if (typeof(ForwardDestination).IsAssignableFrom(type)) { if (!loadedTypes.ContainsKey(type)) { lock (loadedTypes) { if (!loadedTypes.ContainsKey(type)) { loadedTypes.Add(type, fdh); } } } } } Utility.WriteDebugInfo(String.Format("Forwarder '{0}' was loaded successfully", name)); } } catch (Exception ex) { // suppress any per-plugin loading exceptions Utility.WriteDebugInfo(String.Format("Forwarder failed to load: '{0}' - {1} - {2}", name, ex.Message, ex.StackTrace)); } }