using System; namespace zero { namespace netboot { [System.ComponentModel.ToolboxItem(true)] public partial class DownloadsWidget : Gtk.Bin { public zero.netboot.AddDownloadWindow addDlwindow; public Gtk.TreeViewColumn namecol; public Gtk.TreeViewColumn progress; public Gtk.CellRendererText cell; public Gtk.TreeViewColumn idcol; public Gtk.CellRendererText idcell; public Gtk.CellRendererProgress cellprogress; public Gtk.ListStore isos; public bool debug; protected virtual void OnAddDLButtonClicked (object sender, System.EventArgs e) { addDlwindow = new zero.netboot.AddDownloadWindow(); } public DownloadsWidget () { this.Build (); debug=zero.netboot.Core.getCore().debug; idcol=new Gtk.TreeViewColumn(); idcol.Title="ID"; idcell=new Gtk.CellRendererText(); idcol.PackStart(idcell,true); treeview2.AppendColumn(idcol); idcol.AddAttribute(idcell,"text",0); namecol=new Gtk.TreeViewColumn(); namecol.Title=Mono.Unix.Catalog.GetString("Name"); progress=new Gtk.TreeViewColumn(); progress.Title=Mono.Unix.Catalog.GetString("Progress"); cell=new Gtk.CellRendererText(); cellprogress=new Gtk.CellRendererProgress(); namecol.PackStart(cell,true); treeview2.AppendColumn(namecol); progress.PackStart(cellprogress,true); treeview2.AppendColumn(progress); namecol.AddAttribute(cell,"text",1); progress.AddAttribute(cellprogress,"value",2); progress.AddAttribute(cellprogress,"text",3); /* isos=new Gtk.ListStore(typeof(string),typeof(string),typeof(int)); treeview2.Model=isos; treeview2.ShowAll(); */ populateDownloads(); // isos.AppendValues("llx0909-edu-gdesktop-r1.iso",0); } public void populateDownloads() { isos=new Gtk.ListStore(typeof(string),typeof(string),typeof(int),typeof(string)); treeview2.Model=isos; treeview2.ShowAll(); foreach(zero.netboot.DownloadInfo info in zero.netboot.Core.getCore().downList) { if(!info.completed) { int index=info.local_file.LastIndexOf("/"); isos.AppendValues(Convert.ToString(info.id),info.local_file.Substring(index+1),info.progress,"0/0 (0%)"); } } } protected virtual void OnPauResButtonClicked (object sender, System.EventArgs e) { zero.netboot.Core.getCore().downloadThread.Abort(); } protected virtual void OnStartButtonClicked (object sender, System.EventArgs e) { Gtk.TreeModel model; Gtk.TreeIter iter; Gtk.TreeSelection selection=treeview2.Selection; if(selection==null) Console.WriteLine("dudururuu"); treeview2.Selection.GetSelected(out model,out iter); Console.WriteLine(model.GetValue(iter,0)); //zero.netboot.IsoInfo info=zero.netboot.IsoInfo.getInfo((string)model.GetValue(iter,0)); zero.netboot.DownloadInfo info=zero.netboot.DownloadInfo.getInfo(Convert.ToInt32(model.GetValue(iter,0))); if (info!=null) { Console.WriteLine(info.file_url + " " + info.local_file); zero.netboot.Core core=zero.netboot.Core.getCore(); System.Threading.ThreadStart downloadTStart = delegate { core.downman.download_file(info.file_url,0,info.id); }; core.downloadThread= new System.Threading.Thread(downloadTStart); core.downloadThread.Start(); } else { dprint("No selected item"); } } public void dprint(string txt) { if (debug) { Console.WriteLine("[DownloadsWidget] {0}",txt); } } protected virtual void OnCheckHTTPButtonClicked (object sender, System.EventArgs e) { zero.netboot.Core.getCore().webman.listWEBFiles(); } protected virtual void OnCancelButtonClicked (object sender, System.EventArgs e) { Gtk.TreeModel model; Gtk.TreeIter iter; Gtk.TreeSelection selection=treeview2.Selection; if(selection==null) Console.WriteLine("dudururuu"); treeview2.Selection.GetSelected(out model,out iter); Console.WriteLine(model.GetValue(iter,0)); //zero.netboot.IsoInfo info=zero.netboot.IsoInfo.getInfo((string)model.GetValue(iter,0)); zero.netboot.DownloadInfo info=zero.netboot.DownloadInfo.getInfo(Convert.ToInt32(model.GetValue(iter,0))); if (info!=null) { Console.WriteLine(info.file_url + " " + info.local_file); zero.netboot.Core core=zero.netboot.Core.getCore(); if(core.downloadThread!=null && core.downloadThread.IsAlive) core.downloadThread.Abort(); core.sqlman.delete_download(info.id); core.sqlman.select_query_dl(out core.downList); populateDownloads(); } else { dprint("No selected item"); } } protected virtual void OnCheckFTPStableButtonClicked (object sender, System.EventArgs e) { zero.netboot.Core.getCore().webman.listFTPFiles(zero.netboot.Core.getCore().confman.options["ftp_stable"]); } protected virtual void OnCheckFTPDailybuttonClicked (object sender, System.EventArgs e) { zero.netboot.Core.getCore().webman.listFTPFiles(zero.netboot.Core.getCore().confman.options["ftp_daily"]); } } } }