private void RefreshList() { try { spContent.Children.Clear(); using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\XWindows Dock_is1")) { XWindowsDockPath = (string)key.GetValue("InstallLocation") + "\\Public Plugins"; } PluginsList.Instance.Scan(XWindowsDockPath); foreach (var plugin in PluginsList.Instance.Items) { var ctrl = new PluginItem(); ctrl.Plugin = plugin; spContent.Children.Add(ctrl); var line = new Rectangle(); line.Margin = new Thickness(8, 2, 8, 2); line.Height = 1; line.HorizontalAlignment = HorizontalAlignment.Stretch; line.VerticalAlignment = VerticalAlignment.Top; line.StrokeThickness = 0; line.Fill = new SolidColorBrush(Color.FromRgb(0xE0, 0xE0, 0xE0)); spContent.Children.Add(line); } } catch { } }
private void LoadPlugins(ConfigGramer configuration) { pluginList = new List <PluginItem>(); ConfigGramer.Item result = configuration.GetItem( new ASTQualifier(ItemType.CONFIGURATION), new ASTQualifier(ItemType.SETTING_LIST), new ASTQualifier(ItemType.SETTING, "plugins"), new ASTQualifier(ItemType.VALUE), new ASTQualifier(ItemType.LIST), new ASTQualifier(ItemType.VALUE_LIST) ); if (result.IsEmpty()) { return; } ConfigGramer._ValueList valueList = (ConfigGramer._ValueList)result.value; List <ConfigGramer._Value> list = valueList.Value; ASTQualifier[] qualifiers = { new ASTQualifier(ItemType.SETTING), new ASTQualifier(ItemType.VALUE), new ASTQualifier(ItemType.SCALAR_VALUE), new ASTQualifier(ItemType.STRING) }; for (int i = 0; i < list.Count; i++) { ConfigGramer.Item listItem = configuration.GetItem( result, new ASTQualifier(ItemType.VALUE, i.ToString()), new ASTQualifier(ItemType.GROUP), new ASTQualifier(ItemType.SETTING_LIST) ); PluginItem plugin = new PluginItem(); qualifiers[3].itemType = ItemType.STRING; qualifiers[0].itemQualifier = "name"; plugin.Name = configuration.GetItem(listItem, qualifiers).GetString(); qualifiers[0].itemQualifier = "description"; plugin.Description = configuration.GetItem(listItem, qualifiers).GetString(); qualifiers[0].itemQualifier = "version"; plugin.Version = configuration.GetItem(listItem, qualifiers).GetString(); qualifiers[0].itemQualifier = "type"; plugin.Type = configuration.GetItem(listItem, qualifiers).GetString(); qualifiers[0].itemQualifier = "handler"; plugin.Handler = configuration.GetItem(listItem, qualifiers).GetString(); qualifiers[0].itemQualifier = "path"; plugin.Path = configuration.GetItem(listItem, qualifiers).GetString(); qualifiers[0].itemQualifier = "enabled"; qualifiers[3].itemType = ItemType.BOOLEAN; plugin.Enabled = configuration.GetItem(listItem, qualifiers).GetBoolean(); plugin.Updated = false; // TODO load necessary and congress groups membership from pluginList.Add(plugin); } if (pluginList.Count > DEFAULT_NUM_OPTIONS) { ExpandPluginListButton.Visibility = Visibility.Visible; ExpandPluginListButton.Content = "▼"; // ▲ VisiblePluginList = pluginList.GetRange(0, 3); } else { ExpandPluginListButton.Visibility = Visibility.Collapsed; VisiblePluginList = pluginList; } ConfigurationSettingsGridView.ItemsSource = VisiblePluginList; }