diff --git a/EduNetworkBuilder/PersonClass.cs b/EduNetworkBuilder/PersonClass.cs
index 4e58e54..fe779e5 100644
--- a/EduNetworkBuilder/PersonClass.cs
+++ b/EduNetworkBuilder/PersonClass.cs
@@ -5,6 +5,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.IO;
+using System.Windows.Forms;
namespace EduNetworkBuilder
{
@@ -229,5 +230,60 @@ namespace EduNetworkBuilder
return true;
}
+ ///
+ /// Organize the projects into a nice project tree.
+ ///
+ ///
+ public TreeNode WorkTree(TreeNode theTop=null)
+ {
+ Projects.Sort((q, p) => p.DueDate.CompareTo(q.DueDate));
+
+ List DrawFrom = new List();
+ List MasterList = new List();
+
+ DrawFrom.AddRange(Projects);
+ for (int i = DrawFrom.Count - 1; i >= 0; i--)
+ {
+ if (DrawFrom[i].isMaster)
+ {
+ MasterList.Add(DrawFrom[i]);
+ DrawFrom.RemoveAt(i);
+ }
+ }
+ //Now, all the masters are in Master, and submitted projects are in DrawFrom.
+
+ TreeNode Node;
+ TreeNode Top;
+ TreeNode Master;
+ //We have a class tree
+ if (theTop == null)
+ {
+ Top = new TreeNode(NB.Translate("PPF_Class"));
+ Top.Tag = "Class"; //Do not translate this
+ }
+ else
+ {
+ Top = theTop;
+ }
+ foreach(SchoolworkClass MasterSW in MasterList)
+ {
+ Master = new TreeNode(MasterSW.Name);
+ Master.Tag = MasterSW;
+
+ for (int i = DrawFrom.Count -1; i>=0; i--)
+ {
+ if(DrawFrom[i].ThisID == MasterSW.ThisID)
+ {
+ Node = new TreeNode(DrawFrom[i].Name);
+ Node.Tag = DrawFrom[i];
+ Master.Nodes.Add(Node);
+ }
+ }
+ Top.Nodes.Add(Master);
+ }
+
+ return Top;
+ }
+
}
}
diff --git a/EduNetworkBuilder/PersonProfileForm.cs b/EduNetworkBuilder/PersonProfileForm.cs
index c364e65..928aa1f 100644
--- a/EduNetworkBuilder/PersonProfileForm.cs
+++ b/EduNetworkBuilder/PersonProfileForm.cs
@@ -254,24 +254,17 @@ namespace EduNetworkBuilder
{
Node = new TreeNode(PC.UserName);
Node.Tag = PC;
+ PC.WorkTree(Node);
Top.Nodes.Add(Node);
}
}
private void UpdateStudentFormFromUser()
{
- TreeNode Node;
- //We have a class tree
- Node = new TreeNode(NB.Translate("PPF_Class"));
- Node.Tag = "Class"; //Do not translate this
- TreeNode Top = Node;
- tvClasswork.Nodes.Add(Node);
- foreach (SchoolworkClass SWC in CurrentUser.Projects)
- {
- Node = new TreeNode(SWC.Name);
- Node.Tag = SWC; //Store the schoolwork record in with the node
- Top.Nodes.Add(Node);
- }
+ if (CurrentUser == null) return;
+ TreeNode Top = CurrentUser.WorkTree();
+ if (Top != null)
+ tvClasswork.Nodes.Add(Top);
}
private void SaveUserInfoFromForm()