public TreeIter AddAddin(AddinHeader info, object dataItem, AddinStatus status) { addinData [info] = dataItem; TreeIter iter; if (ShowCategories) { TreeIter piter = TreeIter.Zero; if (info.Category == "") { string otherCat = Catalog.GetString("Other"); piter = FindCategory(otherCat); } else { piter = FindCategory(info.Category); } iter = treeStore.AppendNode(piter); } else { iter = treeStore.AppendNode(); } UpdateRow(iter, info, dataItem, status); return(iter); }
internal override bool TryParse(ResolutionResult resolutionResult, out AddinResolution result) { result = new NewOrUpdatedAddinResolution(); bool enabled; AddinHeaderResolution addinHeader; if (!AddinHeader.TryParse(resolutionResult, result, out enabled, out addinHeader)) { return(false); } List <ExtensionPointResolution> extensionPoints = null; List <ExtensionBuilderResolutionGroup> extensionBuilderGroups = null; if (ExtensionSchema != null && !ExtensionSchema.TryParse(resolutionResult, result, out extensionPoints, out extensionBuilderGroups)) { return(false); } List <ExtensionResolutionGroup> extensionGroups = null; if (Extensions != null && !Extensions.TryParse(resolutionResult, result, out extensionGroups)) { return(false); } AddinActivatorResolution addinActivator = null; if (AddinActivator != null && !AddinActivator.TryParse(resolutionResult, result, out addinActivator)) { return(false); } result.Enabled = enabled; result.AddinHeader = addinHeader; result.ManifestFile = ManifestFile; result.ExtensionBuilderGroups = extensionBuilderGroups; result.ExtensionPoints = extensionPoints; result.ExtensionGroups = extensionGroups; result.AddinActivator = addinActivator; if (AssemblyFiles != null) { result.Assemblies = new List <AssemblyResolution>(AssemblyFiles.Count); foreach (var assemblyFile in AssemblyFiles) { result.Assemblies.Add(AssemblyResolution.CreateAddinAssembly(result, assemblyFile)); } } if (DataFiles != null) { result.DataFiles = new List <DataFileResolution>(DataFiles.Count); foreach (var dataFile in DataFiles) { result.DataFiles.Add(dataFile); } } return(true); }
protected override void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon) { base.UpdateRow(iter, info, dataItem, enabled, icon); AddinRepositoryEntry arep = (AddinRepositoryEntry)dataItem; treeStore.SetValue(iter, ncol, arep.RepositoryName); }
public void SetUninstallMode(AddinHeader info) { btnPrev.Hide(); btnNext.Sensitive = true; uninstallId = info.Id; wizardNotebook.CurrentPage = 1; StringBuilder sb = new StringBuilder(); sb.Append("<b>").Append(Catalog.GetString("The following packages will be uninstalled:")).Append("</b>\n\n"); sb.Append(info.Name + "\n\n"); Addin[] sinfos = service.GetDependentAddins(info.Id, true); if (sinfos.Length > 0) { sb.Append("<b>").Append(Catalog.GetString("There are other extensions that depend on the previous ones which will also be uninstalled:")).Append("</b>\n\n"); foreach (Addin si in sinfos) { sb.Append(si.Description.Name + "\n"); } } labelSummary.Markup = sb.ToString(); }
protected virtual void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon) { bool sel = selected.Contains(info); treeStore.SetValue(iter, ColAddin, info); treeStore.SetValue(iter, ColData, dataItem); if (enabled) { treeStore.SetValue(iter, ColName, info.Name); treeStore.SetValue(iter, ColVersion, info.Version); treeStore.SetValue(iter, ColAllowSelection, allowSelection); } else { treeStore.SetValue(iter, ColName, "<span foreground=\"grey\">" + info.Name + "</span>"); treeStore.SetValue(iter, ColVersion, "<span foreground=\"grey\">" + info.Version + "</span>"); treeStore.SetValue(iter, ColAllowSelection, false); } treeStore.SetValue(iter, ColImage, icon); treeStore.SetValue(iter, ColShowImage, true); treeStore.SetValue(iter, ColSelected, sel); }
internal bool Introspect(IMessageDialog dialog) { var result = true; if (AddinHeader == null) { dialog.AddError(""); result = false; } else { result &= AddinHeader.Introspect(dialog); } if (ExtensionDeclaration == null && ExtensionImplementation == null) { dialog.AddError(""); result = false; } if (ExtensionDeclaration != null) { result &= ExtensionDeclaration.Introspect(dialog); } if (ExtensionImplementation != null) { result &= ExtensionImplementation.Introspect(dialog); } return(result); }
public TreeIter AddAddin(AddinHeader info, object dataItem, bool enabled, bool userDir) { Gdk.Pixbuf icon; if (userDir) { icon = userPackage; } else { icon = package; } addinData [info] = dataItem; TreeIter piter = TreeIter.Zero; if (info.Category == "") { string otherCat = Catalog.GetString("Other"); piter = FindCategory(otherCat); } else { piter = FindCategory(info.Category); } TreeIter iter = treeStore.AppendNode(piter); UpdateRow(iter, info, dataItem, enabled, icon); return(iter); }
public AddinInfoDialog (AddinHeader info) { Build (); this.info = info; packageImage.Stock = "md-package"; packageImage.IconSize = (int)IconSize.Dialog; Fill (); }
public AddinInfoDialog(AddinHeader info) { Build(); this.info = info; packageImage.Stock = "md-package"; packageImage.IconSize = (int)IconSize.Dialog; Fill(); }
public AddinDetailsDialog(Addin addin, Window parent) : base(String.Empty, parent) { SetDefaultSize(400, -1); AddinHeader info = SetupService.GetAddinHeader(addin); HBox box = new HBox(); box.BorderWidth = 10; box.Spacing = 10; VBox.PackStart(box, false, false, 0); Image image = new Image(); image.IconName = "package-x-generic"; image.IconSize = (int)IconSize.Dialog; image.Yalign = 0.0f; box.PackStart(image, false, false, 0); StringBuilder builder = new StringBuilder(); builder.AppendFormat("<b><big>{0}</big></b>\n\n", GLib.Markup.EscapeText(addin.Name)); builder.AppendFormat(GLib.Markup.EscapeText(addin.Description.Description)).Append("\n\n"); builder.Append("<small>"); builder.AppendFormat("<b>{0}</b> {1}\n\n", Catalog.GetString("Version:"), GLib.Markup.EscapeText(addin.Description.Version)); builder.AppendFormat("<b>{0}</b> {1}\n\n", Catalog.GetString("Authors:"), GLib.Markup.EscapeText(addin.Description.Author)); builder.AppendFormat("<b>{0}</b> {1}\n\n", Catalog.GetString("Copyright/License:"), GLib.Markup.EscapeText(addin.Description.Copyright)); if (info.Dependencies.Count > 0) { builder.AppendFormat("<b>{0}</b>\n", Catalog.GetString("Extension Dependencies:")); foreach (AddinDependency dep in info.Dependencies) { builder.Append(GLib.Markup.EscapeText(dep.Name)).Append('\n'); } } builder.Append("</small>"); WrapLabel label = new WrapLabel(); label.Markup = builder.ToString(); box.PackStart(label, true, true, 0); VBox.ShowAll(); AddDefaultCloseButton(); }
string GetId(AddinHeader ainfo) { if (service.ApplicationNamespace != null && (ainfo.Namespace + ".").StartsWith(service.ApplicationNamespace + ".")) { return(ainfo.Id.Substring(service.ApplicationNamespace.Length + 1)); } else { return(ainfo.Id); } }
protected void OnGotoWeb(object sender, EventArgs e) { AddinHeader info = tree.ActiveAddin; if (info == null) { return; } if (info.Url != "") { Process.Start(info.Url); } }
protected void OnGotoWeb(object sender, EventArgs e) { AddinHeader info = tree.ActiveAddin; if (info == null) { return; } if (info.Url != "") { Gnome.Url.Show(info.Url); } }
internal bool TryParse(IMessageDialog dialog, out AddinResolution result) { result = new NewAddinResolution(); AddinHeaderResolution addinHeader; if (!AddinHeader.TryParse(dialog, result, out addinHeader)) { return(false); } List <ExtensionPointResolution> extensionPoints = null; List <ExtensionBuilderResolutionGroup> extensionBuilderGroups = null; if (ExtensionDeclaration != null && !ExtensionDeclaration.TryParse(dialog, result, out extensionPoints, out extensionBuilderGroups)) { return(false); } List <ExtensionResolutionGroup> extensionGroups = null; if (ExtensionImplementation != null && !ExtensionImplementation.TryParse(dialog, result, out extensionGroups)) { return(false); } result.AddinHeader = addinHeader; result.ManifestFile = ManifestFile; result.ExtensionBuilderGroups = extensionBuilderGroups; result.ExtensionPoints = extensionPoints; result.ExtensionGroups = extensionGroups; result.RunningStatus = addinHeader.Enabled ? AddinRunningStatus.Enabled : AddinRunningStatus.Disabled; if (AssemblyFiles != null) { result.Assemblies = new List <AssemblyResolution>(AssemblyFiles.Count); foreach (var assemblyFile in AssemblyFiles) { result.Assemblies.Add(AssemblyResolution.CreateAddinAssembly(result, assemblyFile)); } } if (DataFiles != null) { result.DataFiles = new List <DataFileResolution>(DataFiles.Count); foreach (var dataFile in DataFiles) { result.DataFiles.Add(dataFile); } } return(true); }
void SetRowIcon(TreeIter it, AddinHeader info, object dataItem, AddinStatus status) { string customIcom = info.Properties.GetPropertyValue("Icon32"); string iconId = info.Id + " " + info.Version + " " + customIcom; Gdk.Pixbuf customPix; if (customIcom.Length == 0) { customPix = null; iconId = "__"; } else if (!cachedIcons.TryGetValue(iconId, out customPix)) { if (dataItem is Addin) { string file = Path.Combine(((Addin)dataItem).Description.BasePath, customIcom); if (File.Exists(file)) { try { customPix = new Gdk.Pixbuf(file); } catch (Exception ex) { Console.WriteLine(ex); } } cachedIcons [iconId] = customPix; } else if (dataItem is AddinRepositoryEntry) { AddinRepositoryEntry arep = (AddinRepositoryEntry)dataItem; string tmpId = iconId; arep.BeginDownloadSupportFile(customIcom, delegate(IAsyncResult res) { Gtk.Application.Invoke(delegate { LoadRemoteIcon(it, tmpId, arep, res, info, dataItem, status); }); }, null); iconId = "__"; } } StoreIcon(it, iconId, customPix, status); }
protected void OnShowInfo(object sender, EventArgs e) { AddinHeader info = tree.ActiveAddin; if (info == null) { return; } AddinInfoDialog dlg = new AddinInfoDialog(info); try { dlg.Run(); } finally { dlg.Destroy(); } }
internal override bool Introspect(INameConvention nameConvention, ResolutionResult resolutionResult) { var result = true; if (AddinHeader == null) { resolutionResult.AddError( string.Format("The addin located at [{0}] does not define any addin properties (name, guid, etc) in the Addin node of manifest file, which is required!", ManifestFile.Directory)); result = false; } else { result &= AddinHeader.Introspect(ManifestFile.Directory, resolutionResult); } if (!result) { return(false); } if (AddinActivator != null) { result &= AddinActivator.Introspect(resolutionResult); } if (ExtensionSchema == null && Extensions == null) { resolutionResult.AddError(string.Format( "A valid addin manifest file must contain either an extension schema node, or an extension node, or both, while the addin [{0}] located at [{1}] does not provide any of them!", AddinHeader.Name, ManifestFile.Directory)); result = false; } if (ExtensionSchema != null) { result &= ExtensionSchema.Introspect(nameConvention, resolutionResult); } if (Extensions != null) { result &= Extensions.Introspect(resolutionResult); } return(result); }
void UnselectAll(TreeIter iter) { AddinHeader info = (AddinHeader)treeStore.GetValue(iter, ColAddin); if (info != null) { treeStore.SetValue(iter, ColSelected, false); selected.Remove(info); } else { if (treeStore.IterChildren(out iter, iter)) { do { UnselectAll(iter); } while (treeStore.IterNext(ref iter)); } } }
void OnAddinToggled(object o, ToggledArgs args) { TreeIter it; if (treeStore.GetIter(out it, new TreePath(args.Path))) { bool sel = !(bool)treeStore.GetValue(it, 5); treeStore.SetValue(it, 5, sel); AddinHeader info = (AddinHeader)treeStore.GetValue(it, 0); if (sel) { selected.Add(info); } else { selected.Remove(info); } OnSelectionChanged(EventArgs.Empty); } }
void FillAddinInfo() { AddinHeader info = tree.ActiveAddin; btnInfo.Sensitive = info != null; /* if (info == null) { * infoLabel.Markup = ""; * linkLabel.Visible = false; * return; * } * * StringBuilder sb = new StringBuilder (); * sb.Append ("<b><big>" + info.Name + "</big></b>\n\n"); * * if (info.Description != "") * sb.Append (info.Description + "\n\n"); * * sb.Append ("<small>"); * * sb.Append ("<b>").Append (Catalog.GetString ("Version:")).Append ("</b>\n").Append (info.Version).Append ("\n\n"); * * if (info.Author != "") * sb.Append ("<b>").Append (Catalog.GetString ("Author:")).Append ("</b>\n").Append (info.Author).Append ("\n\n"); * * if (info.Copyright != "") * sb.Append ("<b>").Append (Catalog.GetString ("Copyright:")).Append ("</b>\n").Append (info.Copyright).Append ("\n\n"); * * if (info.Dependencies.Count > 0) { * sb.Append ("<b>").Append (Catalog.GetString ("Extension Dependencies:")).Append ("</b>\n"); * foreach (PackageDependency dep in info.Dependencies) * sb.Append (dep.Name + "\n"); * } * * sb.Append ("</small>"); * * linkLabel.Visible = info.Url != ""; * * infoLabel.Markup = sb.ToString ();*/ }
protected virtual void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, AddinStatus status) { bool sel = selected.Contains(info); treeStore.SetValue(iter, ColAddin, info); treeStore.SetValue(iter, ColData, dataItem); string name = EscapeWithFilterMarker(info.Name); if (!string.IsNullOrEmpty(info.Description)) { string desc = info.Description; int i = desc.IndexOf('\n'); if (i != -1) { desc = desc.Substring(0, i); } name += "\n<small><span foreground=\"darkgrey\">" + EscapeWithFilterMarker(desc) + "</span></small>"; } if (status != AddinStatus.Disabled) { treeStore.SetValue(iter, ColName, name); treeStore.SetValue(iter, ColVersion, info.Version); treeStore.SetValue(iter, ColAllowSelection, allowSelection); } else { treeStore.SetValue(iter, ColName, "<span foreground=\"grey\">" + name + "</span>"); treeStore.SetValue(iter, ColVersion, "<span foreground=\"grey\">" + info.Version + "</span>"); treeStore.SetValue(iter, ColAllowSelection, false); } treeStore.SetValue(iter, ColShowImage, true); treeStore.SetValue(iter, ColSelected, sel); SetRowIcon(iter, info, dataItem, status); }
void SelectAll(TreeIter iter) { AddinHeader info = (AddinHeader)treeStore.GetValue(iter, ColAddin); if (info != null) { treeStore.SetValue(iter, ColSelected, true); if (!selected.Contains(info)) { selected.Add(info); } treeView.ExpandToPath(treeStore.GetPath(iter)); } else { if (treeStore.IterChildren(out iter, iter)) { do { SelectAll(iter); } while (treeStore.IterNext(ref iter)); } } }
protected virtual void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, AddinStatus status) { bool sel = selected.Contains (info); treeStore.SetValue (iter, ColAddin, info); treeStore.SetValue (iter, ColData, dataItem); string name = EscapeWithFilterMarker (info.Name); if (!string.IsNullOrEmpty (info.Description)) { string desc = info.Description; int i = desc.IndexOf ('\n'); if (i != -1) desc = desc.Substring (0, i); name += "\n<small><span foreground=\"darkgrey\">" + EscapeWithFilterMarker (desc) + "</span></small>"; } if (status != AddinStatus.Disabled) { treeStore.SetValue (iter, ColName, name); treeStore.SetValue (iter, ColVersion, info.Version); treeStore.SetValue (iter, ColAllowSelection, allowSelection); } else { treeStore.SetValue (iter, ColName, "<span foreground=\"grey\">" + name + "</span>"); treeStore.SetValue (iter, ColVersion, "<span foreground=\"grey\">" + info.Version + "</span>"); treeStore.SetValue (iter, ColAllowSelection, false); } treeStore.SetValue (iter, ColShowImage, true); treeStore.SetValue (iter, ColSelected, sel); SetRowIcon (iter, info, dataItem, status); }
public object GetAddinData(AddinHeader info) { return addinData [info]; }
public TreeIter AddAddin(AddinHeader info, object dataItem, AddinStatus status) { addinData [info] = dataItem; TreeIter iter; if (ShowCategories) { TreeIter piter = TreeIter.Zero; if (info.Category == "") { string otherCat = Catalog.GetString ("Other"); piter = FindCategory (otherCat); } else { piter = FindCategory (info.Category); } iter = treeStore.AppendNode (piter); } else { iter = treeStore.AppendNode (); } UpdateRow (iter, info, dataItem, status); return iter; }
public TreeIter AddAddin(AddinHeader info, object dataItem, bool enabled, bool userDir) { return AddAddin (info, dataItem, enabled ? AddinStatus.Installed : AddinStatus.Disabled | AddinStatus.Installed); }
public TreeIter AddAddin(AddinHeader info, object dataItem, bool enabled) { return AddAddin (info, dataItem, enabled, true); }
public void SetUninstallMode (AddinHeader info) { btnPrev.Hide (); btnNext.Sensitive = true; uninstallId = info.Id; wizardNotebook.CurrentPage = 1; StringBuilder sb = new StringBuilder (); sb.Append (Catalog.GetString ("<b>The following packages will be uninstalled:</b>\n\n")); sb.Append (info.Name + "\n\n"); Addin[] sinfos = service.GetDependentAddins (info.Id, true); if (sinfos.Length > 0) { sb.Append (Catalog.GetString ("<b>There are other add-ins that depend on the previous ones which will also be uninstalled:</b>\n\n")); foreach (Addin si in sinfos) sb.Append (si.Description.Name + "\n"); } labelSummary.Markup = sb.ToString (); }
string GetId(AddinHeader ainfo) { if (service.ApplicationNamespace != null && (ainfo.Namespace + ".").StartsWith (service.ApplicationNamespace + ".")) return ainfo.Id.Substring (service.ApplicationNamespace.Length + 1); else return ainfo.Id; }
bool IsFiltered(AddinHeader ah) { if (filterEntry.Text.Length == 0) return false; if (ah.Name.IndexOf (filterEntry.Text, StringComparison.CurrentCultureIgnoreCase) != -1) return false; if (ah.Description.IndexOf (filterEntry.Text, StringComparison.CurrentCultureIgnoreCase) != -1) return false; if (ah.Id.IndexOf (filterEntry.Text, StringComparison.CurrentCultureIgnoreCase) != -1) return false; return true; }
public TreeIter AddAddin (AddinHeader info, object dataItem, bool enabled, bool userDir) { Gdk.Pixbuf icon; if (userDir) icon = userPackage; else icon = package; addinData [info] = dataItem; TreeIter piter = TreeIter.Zero; if (info.Category == "") { string otherCat = Catalog.GetString ("Other"); piter = FindCategory (otherCat); } else { piter = FindCategory (info.Category); } TreeIter iter = treeStore.AppendNode (piter); UpdateRow (iter, info, dataItem, enabled, icon); return iter; }
protected virtual void UpdateRow (TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon) { bool sel = selected.Contains (info); treeStore.SetValue (iter, ColAddin, info); treeStore.SetValue (iter, ColData, dataItem); if (enabled) { treeStore.SetValue (iter, ColName, info.Name); treeStore.SetValue (iter, ColVersion, info.Version); treeStore.SetValue (iter, ColAllowSelection, allowSelection); } else { treeStore.SetValue (iter, ColName, "<span foreground=\"grey\">" + info.Name + "</span>"); treeStore.SetValue (iter, ColVersion, "<span foreground=\"grey\">" + info.Version + "</span>"); treeStore.SetValue (iter, ColAllowSelection, false); } treeStore.SetValue (iter, ColImage, icon); treeStore.SetValue (iter, ColShowImage, true); treeStore.SetValue (iter, ColSelected, sel); }
internal static string GetUninstallErrorNoRoot(AddinHeader ainfo) { return string.Format ("The add-in '{0} v{1}' can't be uninstalled with the current user permissions.", ainfo.Name, ainfo.Version); }
void LoadRemoteIcon(TreeIter it, string iconId, AddinRepositoryEntry arep, IAsyncResult res, AddinHeader info, object dataItem, AddinStatus status) { if (!disposed && treeStore.IterIsValid (it)) { Gdk.Pixbuf customPix = null; try { Gdk.PixbufLoader loader = new Gdk.PixbufLoader (arep.EndDownloadSupportFile (res)); customPix = loader.Pixbuf; } catch (Exception ex) { Console.WriteLine (ex); } cachedIcons [iconId] = customPix; StoreIcon (it, iconId, customPix, status); } }
bool IsHidden(AddinHeader ainfo) { return service.ApplicationNamespace != null && !(ainfo.Namespace + ".").StartsWith (service.ApplicationNamespace + "."); }
void SetRowIcon(TreeIter it, AddinHeader info, object dataItem, AddinStatus status) { string customIcom = info.Properties.GetPropertyValue ("Icon32"); string iconId = info.Id + " " + info.Version + " " + customIcom; Gdk.Pixbuf customPix; if (customIcom.Length == 0) { customPix = null; iconId = "__"; } else if (!cachedIcons.TryGetValue (iconId, out customPix)) { if (dataItem is Addin) { string file = Path.Combine (((Addin)dataItem).Description.BasePath, customIcom); if (File.Exists (file)) { try { customPix = new Gdk.Pixbuf (file); } catch (Exception ex) { Console.WriteLine (ex); } } cachedIcons [iconId] = customPix; } else if (dataItem is AddinRepositoryEntry) { AddinRepositoryEntry arep = (AddinRepositoryEntry) dataItem; string tmpId = iconId; arep.BeginDownloadSupportFile (customIcom, delegate (IAsyncResult res) { Gtk.Application.Invoke (delegate { LoadRemoteIcon (it, tmpId, arep, res, info, dataItem, status); }); }, null); iconId = "__"; } } StoreIcon (it, iconId, customPix, status); }
bool IsHidden(AddinHeader ainfo) { return(service.ApplicationNamespace != null && !(ainfo.Namespace + ".").StartsWith(service.ApplicationNamespace + ".")); }
public int CompareVersionTo(AddinHeader other) { return Addin.CompareVersions (this.version, other.Version); }
protected override void UpdateRow (TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon) { base.UpdateRow (iter, info, dataItem, enabled, icon); AddinRepositoryEntry arep = (AddinRepositoryEntry) dataItem; treeStore.SetValue (iter, ncol, arep.RepositoryName); }