Example #1
0
        public void UpdatePage(WebComponent source, WebSubmission values)
        {
            WebPage page = (WebPage)source;

            try {
                WebForm  proc_form  = (WebForm)page.Children.Where(o => o.ID.Equals("proc_form")).First();
                WebTable proc_table = (WebTable)proc_form.Children.Where(o => o.ID.Equals("processes")).First();
                proc_table.ClearRows();
                foreach (ProcObject proc in this._pm.Processes)
                {
                    WebComponent icon_img = null;
                    if (null == proc.JpegB64)
                    {
                        proc.JpegB64 = "";
                        try {
                            Bitmap pico = Icon.ExtractAssociatedIcon(proc.Filename).ToBitmap();
                            icon_img     = new WebImage(pico);
                            proc.JpegB64 = ((WebImage)icon_img).Src;
                        } catch (Exception) {
                            // XXX
                        }
                    }
                    else
                    {
                        icon_img = new WebImage(proc.JpegB64);
                    }

                    if (null != icon_img)
                    {
                        ((WebImage)icon_img).WidthPx  = 16;
                        ((WebImage)icon_img).HeightPx = 16;
                    }
                    else
                    {
                        icon_img = new WebText("");
                    }

                    proc_table.AddBodyRow(
                        "proc-row-" + proc.ProcId,
                        icon_img,
                        new WebText(proc.ProcName),
                        new WebText(proc.ProcId.ToString()),
                        new WebText(proc.ProcUser),
                        new WebText(proc.CPUPercent.ToString("n2")),
                        new WebText(WebComponent.FormatDataSize(proc.ReadBytesSec)),
                        new WebText(WebComponent.FormatDataSize(proc.WriteBytesSec)),
                        new WebText(WebComponent.FormatDataSize(proc.WorkingSet)),
                        new WebCheckbox("Kill", "proc_guid", proc.GUID.ToString())
                        );
                }
            } catch (InvalidOperationException ex) {
                Trace.TraceError(ex.Message);
            } catch (NullReferenceException ex) {
                Trace.TraceError(ex.Message);
            }
        }