Esempio n. 1
0
        private DataGridViewRow NewAlertRow(Alert alert)
        {
            var expanderCell = new DataGridViewImageCell();
            var imageCell    = new DataGridViewImageCell();
            var appliesCell  = new DataGridViewTextBoxCell();
            var detailCell   = new DataGridViewTextBoxCell();
            var dateCell     = new DataGridViewTextBoxCell();

            var actionItems = GetAlertActionItems(alert);
            var actionCell  = new DataGridViewDropDownSplitButtonCell(actionItems.ToArray());
            var newRow      = new DataGridViewRow {
                Tag = alert, MinimumHeight = DataGridViewDropDownSplitButtonCell.MIN_ROW_HEIGHT
            };

            // Get the relevant image for the row depending on the type of the alert
            Image typeImage = alert is MessageAlert && ((MessageAlert)alert).Message.ShowOnGraphs
                                  ? Images.GetImage16For(((MessageAlert)alert).Message.Type)
                                  : Images.GetImage16For(alert.Priority);

            imageCell.Value = typeImage;

            // Set the detail cell content and expanding arrow
            if (expandedState.ContainsKey(alert.uuid))
            {
                // show the expanded arrow and the body detail
                expanderCell.Value = Properties.Resources.expanded_triangle;
                detailCell.Value   = String.Format("{0}\n\n{1}", alert.Title, alert.Description);
            }
            else
            {
                // show the expand arrow and just the title
                expanderCell.Value = Properties.Resources.contracted_triangle;
                detailCell.Value   = alert.Title;
            }
            appliesCell.Value = alert.AppliesTo;
            dateCell.Value    = HelpersGUI.DateTimeToString(alert.Timestamp.ToLocalTime(), Messages.DATEFORMAT_DMY_HM, true);
            newRow.Cells.AddRange(expanderCell, imageCell, detailCell, appliesCell, dateCell, actionCell);

            return(newRow);
        }