Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/22/10 16:53:27 (14 years ago)
Author:
gkronber
Message:

Improved controls for deployment service interaction.
Increased max values for message sizes and related limits in the deployment service configuration.
Recreated proxy classes for the deployment service.

#891 (Refactor GUI for plugin management)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.PluginAdministrator/3.3/PluginEditor.cs

    r3081 r3179  
    133133
    134134        foreach (var plugin in IteratePlugins(selectedPlugins)) {
     135          SetMainFormStatusBar("Uploading", plugin);
    135136          adminClient.DeployPlugin(MakePluginDescription(plugin), CreateZipPackage(plugin));
    136137        }
     
    144145      }
    145146    }
     147
    146148    #endregion
    147149
     
    187189          var plugin = (IPluginDescription)item.Tag;
    188190          // also check all dependencies
    189           modifiedPlugins.Add(plugin);
     191          if (!modifiedPlugins.Contains(plugin))
     192            modifiedPlugins.Add(plugin);
    190193          foreach (var dep in GetAllDependencies(plugin)) {
    191             modifiedPlugins.Add(dep);
     194            if (!modifiedPlugins.Contains(dep))
     195              modifiedPlugins.Add(dep);
    192196          }
    193197        }
     
    197201          var plugin = (IPluginDescription)item.Tag;
    198202          // also uncheck all dependent plugins
    199           modifiedPlugins.Add(plugin);
     203          if (!modifiedPlugins.Contains(plugin))
     204            modifiedPlugins.Add(plugin);
    200205          foreach (var dep in GetAllDependents(plugin)) {
    201             modifiedPlugins.Add(dep);
     206            if (!modifiedPlugins.Contains(dep))
     207              modifiedPlugins.Add(dep);
    202208          }
    203209        }
     
    231237
    232238    private IEnumerable<IPluginDescription> IteratePlugins(IEnumerable<IPluginDescription> plugins) {
     239      HashSet<IPluginDescription> yieldedItems = new HashSet<IPluginDescription>();
    233240      foreach (var plugin in plugins) {
    234241        foreach (var dependency in IteratePlugins(plugin.Dependencies)) {
    235           yield return dependency;
    236         }
    237         yield return plugin;
     242          if (!yieldedItems.Contains(dependency)) {
     243            yieldedItems.Add(dependency);
     244            yield return dependency;
     245          }
     246        }
     247        if (!yieldedItems.Contains(plugin)) {
     248          yieldedItems.Add(plugin);
     249          yield return plugin;
     250        }
    238251      }
    239252    }
     
    309322      MainFormManager.GetMainForm<MainForm>().HideProgressBar();
    310323    }
     324    private void SetMainFormStatusBar(string p, IPluginDescription plugin) {
     325      if (InvokeRequired) Invoke((Action<string, IPluginDescription>)SetMainFormStatusBar, p, plugin);
     326      else {
     327        MainFormManager.GetMainForm<MainForm>().SetStatusBarText(p + " " + plugin.ToString());
     328      }
     329    }
     330
    311331    #endregion
    312332  }
Note: See TracChangeset for help on using the changeset viewer.