public PluginUpdaterForm(PluginManager pluginManager) : base() { InitializeComponent(); Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); pluginManager.PluginLoaded += pluginManager_PluginLoaded; pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; pluginManager.Initializing += pluginManager_Initializing; pluginManager.Initialized += pluginManager_Initialized; pluginDir = Application.StartupPath; installationManager = new InstallationManager(pluginDir); installationManager.PluginInstalled += new EventHandler<PluginInfrastructureEventArgs>(installationManager_PluginInstalled); installationManager.PluginRemoved += new EventHandler<PluginInfrastructureEventArgs>(installationManager_PluginRemoved); installationManager.PluginUpdated += new EventHandler<PluginInfrastructureEventArgs>(installationManager_PluginUpdated); installationManager.PreInstallPlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installationManager_PreInstallPlugin); installationManager.PreRemovePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installationManager_PreRemovePlugin); installationManager.PreUpdatePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installationManager_PreUpdatePlugin); this.pluginManager = pluginManager; updatePluginsBackgroundWorker = new BackgroundWorker(); updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); }
internal SplashScreen(PluginManager manager, int initialInterval) : this() { this.initialInterval = initialInterval; this.pluginManager = manager; RegisterPluginManagerEventHandlers(); versionLabel.Text = "Version " + AssemblyHelpers.GetFileVersion(GetType().Assembly); infoLabel.Text = ""; var attr = (AssemblyCopyrightAttribute)this.GetType().Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false).Single(); copyrightLabel.Text = "Copyright " + attr.Copyright; fadeTimer = new Timer(); fadeTimer.Tick += fadeTimer_Elapsed; fadeTimer.Interval = initialInterval; }
/// <summary> /// Returns a new AppDomain with loaded assemblies/plugins from applicationBase /// </summary> public static AppDomain CreateAndInitSandbox(string appDomainName, string applicationBase, string configFilePath) { PermissionSet pSet; pSet = new PermissionSet(PermissionState.Unrestricted); AppDomainSetup setup = new AppDomainSetup(); setup.PrivateBinPath = applicationBase; setup.ApplicationBase = applicationBase; setup.ConfigurationFile = configFilePath; Type applicationManagerType = typeof(DefaultApplicationManager); AppDomain applicationDomain = AppDomain.CreateDomain(appDomainName, null, setup, pSet, null); DefaultApplicationManager applicationManager = (DefaultApplicationManager)applicationDomain.CreateInstanceAndUnwrap(applicationManagerType.Assembly.FullName, applicationManagerType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); PluginManager pm = new PluginManager(applicationBase); pm.DiscoverAndCheckPlugins(); applicationManager.PrepareApplicationDomain(pm.Applications, pm.Plugins); return applicationDomain; }
/// <summary> /// Initializes an instance of the starter form. /// The starter form shows a splashscreen and initializes the plugin infrastructure. /// </summary> public StarterForm() : base() { InitializeComponent(); largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); Text = "HeuristicLab " + AssemblyHelpers.GetFileVersion(GetType().Assembly); string pluginPath = Path.GetFullPath(Application.StartupPath); pluginManager = new PluginManager(pluginPath); splashScreen = new SplashScreen(pluginManager, 1000); splashScreen.VisibleChanged += new EventHandler(splashScreen_VisibleChanged); splashScreen.Show(this, "Loading HeuristicLab..."); pluginManager.DiscoverAndCheckPlugins(); UpdateApplicationsList(); CheckUpdatesAvailableAsync(); }
public InstallationManagerForm(PluginManager pluginManager) : base() { InitializeComponent(); Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); pluginManager.PluginLoaded += pluginManager_PluginLoaded; pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; pluginManager.Initializing += pluginManager_Initializing; pluginManager.Initialized += pluginManager_Initialized; pluginDir = Application.StartupPath; installationManager = new InstallationManager(pluginDir); installationManager.PluginInstalled += new EventHandler<PluginInfrastructureEventArgs>(installationManager_PluginInstalled); installationManager.PluginRemoved += new EventHandler<PluginInfrastructureEventArgs>(installationManager_PluginRemoved); installationManager.PluginUpdated += new EventHandler<PluginInfrastructureEventArgs>(installationManager_PluginUpdated); installationManager.PreInstallPlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installationManager_PreInstallPlugin); installationManager.PreRemovePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installationManager_PreRemovePlugin); installationManager.PreUpdatePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installationManager_PreUpdatePlugin); // show or hide controls for uploading plugins based on setting if (!HeuristicLab.PluginInfrastructure.Properties.Settings.Default.ShowPluginUploadControls) { tabControl.Controls.Remove(uploadPluginsTabPage); tabControl.Controls.Remove(manageProductsTabPage); } else { pluginEditor.PluginManager = pluginManager; } localPluginsView.StatusView = this; localPluginsView.PluginManager = pluginManager; localPluginsView.InstallationManager = installationManager; remotePluginInstaller.StatusView = this; remotePluginInstaller.InstallationManager = installationManager; remotePluginInstaller.PluginManager = pluginManager; pluginEditor.StatusView = this; pluginEditor.PluginManager = pluginManager; productEditor.StatusView = this; }