Added enhanced listview display for appointments using tiles

This commit is contained in:
gamosoft_cp 2013-04-30 21:00:02 +00:00
parent ebde96e76d
commit cc3656a925
2 changed files with 15 additions and 21 deletions

View File

@ -115,6 +115,7 @@
// //
// listView1 // listView1
// //
this.listView1.Activation = System.Windows.Forms.ItemActivation.OneClick;
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1, this.columnHeader1,
this.columnHeader2}); this.columnHeader2});
@ -129,19 +130,20 @@
this.listView1.ShowItemToolTips = true; this.listView1.ShowItemToolTips = true;
this.listView1.Size = new System.Drawing.Size(226, 507); this.listView1.Size = new System.Drawing.Size(226, 507);
this.listView1.TabIndex = 4; this.listView1.TabIndex = 4;
this.listView1.TileSize = new System.Drawing.Size(300, 38);
this.listView1.UseCompatibleStateImageBehavior = false; this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details; this.listView1.View = System.Windows.Forms.View.Tile;
this.listView1.DoubleClick += new System.EventHandler(this.listView1_DoubleClick); this.listView1.DoubleClick += new System.EventHandler(this.listView1_DoubleClick);
// //
// columnHeader1 // columnHeader1
// //
this.columnHeader1.Text = "Date"; this.columnHeader1.Text = "Date";
this.columnHeader1.Width = 78; this.columnHeader1.Width = 200;
// //
// columnHeader2 // columnHeader2
// //
this.columnHeader2.Text = "Subject"; this.columnHeader2.Text = "Subject";
this.columnHeader2.Width = 163; this.columnHeader2.Width = 200;
// //
// grpRefresh // grpRefresh
// //
@ -170,7 +172,6 @@
this.apptCalendar.Name = "apptCalendar"; this.apptCalendar.Name = "apptCalendar";
this.apptCalendar.OtherMonthForeColor = System.Drawing.Color.LightGray; this.apptCalendar.OtherMonthForeColor = System.Drawing.Color.LightGray;
this.apptCalendar.SelectedBackColor = System.Drawing.Color.LightBlue; this.apptCalendar.SelectedBackColor = System.Drawing.Color.LightBlue;
this.apptCalendar.SelectedDate = new System.DateTime(2013, 4, 26, 0, 0, 0, 0);
this.apptCalendar.SelectedForeColor = System.Drawing.Color.Blue; this.apptCalendar.SelectedForeColor = System.Drawing.Color.Blue;
this.apptCalendar.Size = new System.Drawing.Size(226, 242); this.apptCalendar.Size = new System.Drawing.Size(226, 242);
this.apptCalendar.TabIndex = 1; this.apptCalendar.TabIndex = 1;

View File

@ -119,23 +119,26 @@ namespace Outlook2013TodoAddIn
int sameDay = -1; // startRange.Day; int sameDay = -1; // startRange.Day;
List<ListViewItem> lstCol = new List<ListViewItem>(); List<ListViewItem> lstCol = new List<ListViewItem>();
ListViewGroup grp = null;
lstItems.ToList().ForEach(i => lstItems.ToList().ForEach(i =>
{ {
if (i.Start.Day != sameDay) if (i.Start.Day != sameDay)
{ {
ListViewItem dateItem = new ListViewItem() { Text = i.Start.ToShortDateString() }; grp = new ListViewGroup(i.Start.ToShortDateString(), HorizontalAlignment.Left);
dateItem.Font = new Font(this.listView1.Font, FontStyle.Bold); this.listView1.Groups.Add(grp); // TODO: Style it?
lstCol.Add(dateItem);
sameDay = i.Start.Day; sameDay = i.Start.Day;
}; };
string loc = "-"; // TODO: If no second line is specified, the tile is stretched to only one line
ListViewItem current = new ListViewItem() { Text = i.Start.ToShortTimeString() }; if (!String.IsNullOrEmpty(i.Location)) loc = i.Location;
ListViewItem current = new ListViewItem(new string[] { String.Format("{0} {1}", i.Start.ToShortTimeString(), i.Subject), loc });
current.SubItems.Add(i.Subject); current.SubItems.Add(i.Subject);
// current.SubItems.Add(i.Location); // current.Font = new Font(this.Font, FontStyle.Bold);
// current.UseItemStyleForSubItems = false;
current.ToolTipText = String.Format("{0} - {1} {2}", i.Start.ToShortTimeString(), i.End.ToShortTimeString(), i.Subject); current.ToolTipText = String.Format("{0} - {1} {2}", i.Start.ToShortTimeString(), i.End.ToShortTimeString(), i.Subject);
current.Tag = i; current.Tag = i;
current.Group = grp;
switch (i.BusyStatus) switch (i.BusyStatus)
{ {
case Outlook.OlBusyStatus.olBusy: case Outlook.OlBusyStatus.olBusy:
@ -155,16 +158,6 @@ namespace Outlook2013TodoAddIn
} }
lstCol.Add(current); lstCol.Add(current);
// Add location into a new line (if available)
if (!String.IsNullOrEmpty(i.Location))
{
ListViewItem locationItem = new ListViewItem() { Text = String.Empty };
locationItem.SubItems.Add(i.Location);
locationItem.ForeColor = current.ForeColor;
locationItem.Tag = i;
lstCol.Add(locationItem);
}
}); });
this.listView1.Items.Clear(); this.listView1.Items.Clear();