changed week view
This commit is contained in:
@@ -40,7 +40,8 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
public DateTime DateTo { get; set; }
|
||||
public char WeekChar { get; set; }
|
||||
public int WeekNumber { get; set; }
|
||||
public List<List<AppointmentModel>>[] Stacks { get; set; }
|
||||
//public List<List<AppointmentModel>>[] Stacks { get; set; }
|
||||
public List<List<AppointmentModel>> Stacks { get; set; }
|
||||
}
|
||||
|
||||
private static readonly int PIVOT_PAGES = 3;
|
||||
@@ -59,6 +60,7 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
|
||||
for (int i = 0; i < PIVOT_PAGES; i++)
|
||||
{
|
||||
/*
|
||||
this.itemPages[i].Stacks = new List<List<AppointmentModel>>[5]
|
||||
{
|
||||
new List<List<AppointmentModel>>(),
|
||||
@@ -67,7 +69,8 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
new List<List<AppointmentModel>>(),
|
||||
new List<List<AppointmentModel>>()
|
||||
};
|
||||
|
||||
*/
|
||||
this.itemPages[i].Stacks = new List<List<AppointmentModel>>();
|
||||
this.CreatePage(i, firstDay);
|
||||
firstDay = firstDay.AddDays(7);
|
||||
}
|
||||
@@ -192,7 +195,6 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
|
||||
private void OnPivotSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
|
||||
int delta = this.ThePivot.SelectedIndex - this.lastSelectedIndex;
|
||||
|
||||
if (delta < -1) delta = 1;
|
||||
@@ -253,14 +255,19 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
int index = (indexVal >> 12) & 0xFFF;
|
||||
int listIndex = (indexVal) & 0xFFF;
|
||||
|
||||
AppointmentModel tempModel = this.itemPages[index].Stacks[dayIndex][listIndex].First();
|
||||
this.itemPages[index].Stacks[dayIndex][listIndex].Remove(tempModel);
|
||||
this.itemPages[index].Stacks[dayIndex][listIndex].Add(tempModel);
|
||||
|
||||
for (int i = 0; i < this.itemPages[index].Stacks[dayIndex][listIndex].Count(); i++)
|
||||
//AppointmentModel tempModel = this.itemPages[index].Stacks[dayIndex][listIndex].First();
|
||||
//this.itemPages[index].Stacks[dayIndex][listIndex].Remove(tempModel);
|
||||
//this.itemPages[index].Stacks[dayIndex][listIndex].Add(tempModel);
|
||||
AppointmentModel tempModel = this.itemPages[index].Stacks[listIndex].First();
|
||||
this.itemPages[index].Stacks[listIndex].Remove(tempModel);
|
||||
this.itemPages[index].Stacks[listIndex].Add(tempModel);
|
||||
|
||||
//for (int i = 0; i < this.itemPages[index].Stacks[dayIndex][listIndex].Count(); i++)
|
||||
for (int i = 0; i < this.itemPages[index].Stacks[listIndex].Count(); i++)
|
||||
{
|
||||
tempModel = this.itemPages[index].Stacks[dayIndex][listIndex][i];
|
||||
|
||||
//tempModel = this.itemPages[index].Stacks[dayIndex][listIndex][i];
|
||||
tempModel = this.itemPages[index].Stacks[listIndex][i];
|
||||
|
||||
this.RemoveContentUIElement(index, tempModel);
|
||||
|
||||
for (int day = 0; day < 5; day++)
|
||||
@@ -269,11 +276,13 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
{
|
||||
if (i > 0)
|
||||
{
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[dayIndex][listIndex][i], index, day, 0.5, i, this.itemPages[index].Stacks[dayIndex][listIndex].Count - 1 - i);
|
||||
//this.DrawAppointment(this.itemPages[index].Stacks[dayIndex][listIndex][i], index, day, 0.5, i, this.itemPages[index].Stacks[dayIndex][listIndex].Count - 1 - i);
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[listIndex][i], index, day, 0.5, i, this.itemPages[index].Stacks[listIndex].Count - 1 - i);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[dayIndex][listIndex][i], index, day, 1.0, i, this.itemPages[index].Stacks[dayIndex][listIndex].Count - 1 - i);
|
||||
//this.DrawAppointment(this.itemPages[index].Stacks[dayIndex][listIndex][i], index, day, 1.0, i, this.itemPages[index].Stacks[dayIndex][listIndex].Count - 1 - i);
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[listIndex][i], index, day, 1.0, i, this.itemPages[index].Stacks[listIndex].Count - 1 - i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -281,6 +290,7 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
|
||||
this.RemoveContentUIElement(index, sender as Canvas);
|
||||
|
||||
/*
|
||||
Canvas[] tempCan = this.GetModelCanvasFromContent(index, this.itemPages[index].Stacks[dayIndex][listIndex][0]);
|
||||
|
||||
// FIXME: tempCan[0] -> to correct tempCan
|
||||
@@ -291,6 +301,22 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
this.itemPages[index].Stacks[dayIndex][listIndex].Count(),
|
||||
tempCan[0].Width + tempCan[0].Margin.Left,
|
||||
tempCan[0].Margin.Top);
|
||||
*/
|
||||
|
||||
for (int day = 0; day < 5; day++)
|
||||
{
|
||||
if (this.itemPages[index].Stacks[listIndex][0].IsDate(this.itemPages[index].DateFrom.Date.AddDays(day)) > -1)
|
||||
{
|
||||
Canvas[] tempCan = this.GetModelCanvasFromContent(index, this.itemPages[index].Stacks[listIndex][0]);
|
||||
this.DrawMultiBubble(
|
||||
index,
|
||||
day,
|
||||
listIndex,
|
||||
this.itemPages[index].Stacks[listIndex].Count(),
|
||||
tempCan[0].Width + tempCan[0].Margin.Left,
|
||||
tempCan[0].Margin.Top);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnListChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||
@@ -352,22 +378,27 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
|
||||
// Items
|
||||
|
||||
List<AppointmentModel>[] tempList = new List<AppointmentModel>[5];
|
||||
// List<AppointmentModel>[] tempList = new List<AppointmentModel>[5];
|
||||
List<AppointmentModel> tempList = new List<AppointmentModel>();
|
||||
|
||||
/*
|
||||
for(int i = 0; i < 5; i++)
|
||||
{
|
||||
this.itemPages[index].Stacks[i].Clear();
|
||||
}
|
||||
/**/
|
||||
this.itemPages[index].Stacks.Clear();
|
||||
|
||||
this.itemPages[index].Content.Children.Clear();
|
||||
|
||||
/*
|
||||
for(int i = 0; i < 5; i++)
|
||||
{
|
||||
tempList[i] = new List<AppointmentModel>();
|
||||
}
|
||||
|
||||
*/
|
||||
for (int i = 0; i < TimeTable.AppointmentsModel.Appointments.Count(); i++)
|
||||
{
|
||||
/*
|
||||
for (int k = 0; k < 5; k++)
|
||||
{
|
||||
if (TimeTable.AppointmentsModel.Appointments[i].IsDate(this.itemPages[index].DateFrom.Date.AddDays(k)) > -1)
|
||||
@@ -375,8 +406,104 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
tempList[k].Add(TimeTable.AppointmentsModel.Appointments[i]);
|
||||
}
|
||||
}
|
||||
*/
|
||||
if (TimeTable.AppointmentsModel.Appointments[i].IsDate(this.itemPages[index].DateFrom.Date, 4) > -1)
|
||||
{
|
||||
tempList.Add(TimeTable.AppointmentsModel.Appointments[i]);
|
||||
}
|
||||
}
|
||||
// -------------------------------------------------------
|
||||
for (int i = 0; i < tempList.Count(); i++)
|
||||
{
|
||||
int[] intersectIndex = tempList[i].IntersectArray(tempList.ToArray());
|
||||
|
||||
if (intersectIndex.Count() == 0)
|
||||
{
|
||||
for (int day = 0; day < 5; day++)
|
||||
{
|
||||
if (tempList[i].IsDate(this.itemPages[index].DateFrom.Date.AddDays(day)) > -1)
|
||||
{
|
||||
this.DrawAppointment(tempList[i], index, day);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (intersectIndex.Count() == 1)
|
||||
{
|
||||
int addIndex = -1;
|
||||
|
||||
for (int k = 0; k < this.itemPages[index].Stacks.Count(); k++)
|
||||
{
|
||||
//if (this.itemPages[index].Stacks[day][k].IndexOf(tempList[day][intersectIndex[0]]) > -1)
|
||||
if(this.itemPages[index].Stacks[k].IndexOf(tempList[intersectIndex[0]]) > -1)
|
||||
{
|
||||
addIndex = k;
|
||||
}
|
||||
}
|
||||
|
||||
if (addIndex >= 0)
|
||||
{
|
||||
//this.itemPages[index].Stacks[day][addIndex].Add(tempList[day][i]);
|
||||
this.itemPages[index].Stacks[addIndex].Add(tempList[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
List<AppointmentModel> newList = new List<AppointmentModel>();
|
||||
//newList.Add(tempList[day][i]);
|
||||
//this.itemPages[index].Stacks[day].Add(newList);
|
||||
newList.Add(tempList[i]);
|
||||
this.itemPages[index].Stacks.Add(newList);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
List<List<AppointmentModel>> intersectLists = new List<List<AppointmentModel>>();
|
||||
|
||||
for (int k = 0; k < intersectIndex.Count(); k++)
|
||||
{
|
||||
//for (int m = 0; m < this.itemPages[index].Stacks[day].Count(); m++)
|
||||
for(int m = 0; m < this.itemPages[index].Stacks.Count(); m++)
|
||||
{
|
||||
//if (this.itemPages[index].Stacks[day][m].IndexOf(tempList[day][intersectIndex[k]]) > -1)
|
||||
if(this.itemPages[index].Stacks[m].IndexOf(tempList[intersectIndex[k]]) > -1)
|
||||
{
|
||||
//if (intersectLists.IndexOf(this.itemPages[index].Stacks[day][m]) < 0)
|
||||
if(intersectLists.IndexOf(this.itemPages[index].Stacks[m]) < 0)
|
||||
{
|
||||
//intersectLists.Add(this.itemPages[index].Stacks[day][m]);
|
||||
intersectLists.Add(this.itemPages[index].Stacks[m]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (intersectLists.Count() == 0)
|
||||
{
|
||||
List<AppointmentModel> newList = new List<AppointmentModel>();
|
||||
//newList.Add(tempList[day][i]);
|
||||
//this.itemPages[index].Stacks[day].Add(newList);
|
||||
newList.Add(tempList[i]);
|
||||
this.itemPages[index].Stacks.Add(newList);
|
||||
}
|
||||
else if (intersectLists.Count() == 1)
|
||||
{
|
||||
//intersectLists[0].Add(tempList[day][i]);
|
||||
intersectLists[0].Add(tempList[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int k = 1; k < intersectLists.Count(); k++)
|
||||
{
|
||||
intersectLists[0].AddRange(intersectLists[k].ToArray());
|
||||
//this.itemPages[index].Stacks[day].Remove(intersectLists[k]);
|
||||
this.itemPages[index].Stacks.Remove(intersectLists[k]);
|
||||
}
|
||||
|
||||
//intersectLists[0].Add(tempList[day][i]);
|
||||
intersectLists[0].Add(tempList[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
for (int day = 0; day < 5; day++)
|
||||
{
|
||||
for (int i = 0; i < tempList[day].Count(); i++)
|
||||
@@ -451,24 +578,34 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
// stack draw
|
||||
for (int day = 0; day < 5; day++)
|
||||
//for (int day = 0; day < 5; day++)
|
||||
{
|
||||
for (int i = 0; i < this.itemPages[index].Stacks[day].Count(); i++)
|
||||
//for (int i = 0; i < this.itemPages[index].Stacks[day].Count(); i++)
|
||||
for(int i = 0; i < this.itemPages[index].Stacks.Count(); i++)
|
||||
{
|
||||
for (int k = 0; k < this.itemPages[index].Stacks[day][i].Count(); k++)
|
||||
//for (int k = 0; k < this.itemPages[index].Stacks[day][i].Count(); k++)
|
||||
for(int k = 0; k < this.itemPages[index].Stacks[i].Count(); k++)
|
||||
{
|
||||
if (k > 0)
|
||||
{
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[day][i][k], index, day, 0.5, k, this.itemPages[index].Stacks[day][i].Count() - 1 - k);
|
||||
//this.DrawAppointment(this.itemPages[index].Stacks[day][i][k], index, day, 0.5, k, this.itemPages[index].Stacks[day][i].Count() - 1 - k);
|
||||
for (int day = 0; day < 5; day++)
|
||||
{
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[i][k], index, day, 0.5, k, this.itemPages[index].Stacks[i].Count() - 1 - k);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[day][i][k], index, day, 1.0, k, this.itemPages[index].Stacks[day][i].Count() - 1 - k);
|
||||
//this.DrawAppointment(this.itemPages[index].Stacks[day][i][k], index, day, 1.0, k, this.itemPages[index].Stacks[day][i].Count() - 1 - k);
|
||||
for (int day = 0; day < 5; day++)
|
||||
{
|
||||
this.DrawAppointment(this.itemPages[index].Stacks[i][k], index, day, 1.0, k, this.itemPages[index].Stacks[i].Count() - 1 - k);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Canvas[] tempCan = this.GetModelCanvasFromContent(index, this.itemPages[index].Stacks[day][i][0]);
|
||||
// FIXME: tempCan[0] ->
|
||||
this.DrawMultiBubble(
|
||||
@@ -478,6 +615,21 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
this.itemPages[index].Stacks[day][i].Count(),
|
||||
tempCan[0].Width + tempCan[0].Margin.Left,
|
||||
tempCan[0].Margin.Top);
|
||||
*/
|
||||
for (int day = 0; day < 5; day++)
|
||||
{
|
||||
if (this.itemPages[index].Stacks[i][0].IsDate(this.itemPages[index].DateFrom.Date.AddDays(day)) > -1)
|
||||
{
|
||||
Canvas[] tempCan = this.GetModelCanvasFromContent(index, this.itemPages[index].Stacks[i][0]);
|
||||
this.DrawMultiBubble(
|
||||
index,
|
||||
day,
|
||||
i,
|
||||
this.itemPages[index].Stacks[i].Count(),
|
||||
tempCan[0].Width + tempCan[0].Margin.Left,
|
||||
tempCan[0].Margin.Top);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -578,6 +730,9 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
{
|
||||
Canvas can = new Canvas();
|
||||
|
||||
can.Width = WEEK_TABLE_CELL_HEIGHT * 2;
|
||||
can.Height = WEEK_TABLE_CELL_HEIGHT * 2;
|
||||
|
||||
Rectangle rect = new Rectangle();
|
||||
rect.Width = WEEK_TABLE_CELL_HEIGHT / 2;
|
||||
rect.Height = WEEK_TABLE_CELL_HEIGHT / 2;
|
||||
@@ -598,11 +753,17 @@ namespace CampusAppWP8.Pages.TimeTable
|
||||
block.Padding = new Thickness(WEEK_TABLE_CELL_HEIGHT / 6.5, 0, 0, 0);
|
||||
|
||||
can.Children.Add(rect);
|
||||
rect.SetValue(Canvas.TopProperty, WEEK_TABLE_CELL_HEIGHT / 2);
|
||||
rect.SetValue(Canvas.LeftProperty, WEEK_TABLE_CELL_HEIGHT / 2);
|
||||
|
||||
can.Children.Add(block);
|
||||
block.SetValue(Canvas.TopProperty, WEEK_TABLE_CELL_HEIGHT / 2);
|
||||
block.SetValue(Canvas.LeftProperty, WEEK_TABLE_CELL_HEIGHT / 2);
|
||||
|
||||
can.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(this.OnMultiBubbleClick);
|
||||
can.Tag = ((dayIndex & 0xF) << 24) | ((index & 0xFFF) << 12) | (listIndex & 0xFFF);
|
||||
can.SetValue(Canvas.LeftProperty, xOffset - rect.Width);
|
||||
can.SetValue(Canvas.TopProperty, yOffset);
|
||||
can.SetValue(Canvas.LeftProperty, xOffset - rect.Width - (WEEK_TABLE_CELL_HEIGHT / 2));
|
||||
can.SetValue(Canvas.TopProperty, yOffset - (WEEK_TABLE_CELL_HEIGHT / 2));
|
||||
can.SetValue(Canvas.ZIndexProperty, WEEK_TABLE_ZINDEX_MAX + 1);
|
||||
|
||||
this.itemPages[index].Content.Children.Add(can);
|
||||
|
||||
Reference in New Issue
Block a user