Beispiel #1
0
 internal void Add(MessageThread child)
 {
     children.Add (child);
 }
Beispiel #2
0
		void WriteMessageThread (StringBuilder builder, MessageThread thread, int depth)
		{
			builder.Append (new string (' ', depth * 3));

			if (thread.UniqueId.HasValue) {
				var summary = summaries[(int) thread.UniqueId.Value.Id];
				builder.AppendLine (summary.Envelope.Subject);
			} else {
				builder.AppendLine ("dummy");
			}

			foreach (var child in thread.Children)
				WriteMessageThread (builder, child, depth + 1);
		}
		static void GetThreads (ThreadableNode root, IList<MessageThread> threads, IList<OrderBy> orderBy)
		{
			root.Children.Sort (orderBy);

			for (int i = 0; i < root.Children.Count; i++) {
				var message = root.Children[i].Message;
				UniqueId? uid = null;

				if (message != null)
					uid = message.UniqueId;

				var thread = new MessageThread (uid);
				GetThreads (root.Children[i], thread.Children, orderBy);
				threads.Add (thread);
			}
		}
		void WriteMessageThread (StringBuilder builder, IList<MessageSummary> messages, MessageThread thread, int depth)
		{
			builder.Append (new string (' ', depth * 3));

			if (thread.UniqueId.HasValue) {
				var summary = messages[(int) thread.UniqueId.Value.Id];
				builder.Append (summary.Envelope.Subject);
			} else {
				builder.Append ("dummy");
			}

			builder.Append ('\n');

			foreach (var child in thread.Children)
				WriteMessageThread (builder, messages, child, depth + 1);
		}
Beispiel #5
0
		static void GetThreads (ThreadableNode root, List<MessageThread> threads, OrderBy[] orderBy)
		{
			var sorted = MessageSorter.Sort (root.Children, orderBy);

			for (int i = 0; i < sorted.Count; i++) {
				var message = sorted[i].Message;
				UniqueId? uid = null;

				if (message != null)
					uid = message.ThreadableUniqueId;

				var thread = new MessageThread (uid);
				GetThreads (sorted[i], thread.children, orderBy);
				threads.Add (thread);
			}
		}
Beispiel #6
0
 internal void Add(MessageThread child)
 {
     children.Add(child);
 }