2
// ManageSitesDialog.cs
7
// Copyright (C) 2007 Novell, Inc (http://www.novell.com)
9
// Permission is hereby granted, free of charge, to any person obtaining
10
// a copy of this software and associated documentation files (the
11
// "Software"), to deal in the Software without restriction, including
12
// without limitation the rights to use, copy, modify, merge, publish,
13
// distribute, sublicense, and/or sell copies of the Software, and to
14
// permit persons to whom the Software is furnished to do so, subject to
15
// the following conditions:
17
// The above copyright notice and this permission notice shall be
18
// included in all copies or substantial portions of the Software.
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34
using Mono.Addins.Setup;
37
namespace Mono.Addins.Gui
39
partial class ManageSitesDialog : Dialog
44
public ManageSitesDialog (SetupService service)
47
this.service = service;
48
treeStore = new Gtk.ListStore (typeof (string), typeof (string));
49
repoTree.Model = treeStore;
50
repoTree.HeadersVisible = true;
51
repoTree.AppendColumn (Catalog.GetString ("Name"), new Gtk.CellRendererText (), "text", 1);
52
repoTree.AppendColumn (Catalog.GetString ("Url"), new Gtk.CellRendererText (), "text", 0);
53
repoTree.Selection.Changed += new EventHandler(OnSelect);
55
AddinRepository[] reps = service.Repositories.GetRepositories ();
56
foreach (AddinRepository rep in reps) {
57
treeStore.AppendValues (rep.Url, rep.Title);
60
btnRemove.Sensitive = false;
63
public override void Dispose ()
69
protected void OnAdd (object sender, EventArgs e)
71
NewSiteDialog dlg = new NewSiteDialog ();
75
if (!url.StartsWith ("http://") && !url.StartsWith ("https://") && !url.StartsWith ("file://")) {
76
url = "http://" + url;
82
Services.ShowError (null, "Invalid url: " + url, null, true);
85
if (!service.Repositories.ContainsRepository (url)) {
86
IProgressStatus m = new ConsoleProgressStatus (false);
87
AddinRepository rr = service.Repositories.RegisterRepository (m, url);
89
Services.ShowError (null, "The repository could not be registered", null, true);
92
treeStore.AppendValues (rr.Url, rr.Title);
100
protected void OnRemove (object sender, EventArgs e)
104
if (!repoTree.Selection.GetSelected (out foo, out iter))
107
string rep = (string) treeStore.GetValue (iter, 0);
108
service.Repositories.RemoveRepository (rep);
110
treeStore.Remove (ref iter);
113
protected void OnSelect(object sender, EventArgs e)
115
btnRemove.Sensitive = repoTree.Selection.CountSelectedRows() > 0;