internal void TimeBoxDelete(TRB_PART part, TRB_STATE state, bool visibleOnly = true)
 {
     ProjectCollection.ForEach(proj =>
     {
         if (proj.Visible || !visibleOnly)
         {
             proj.DeleteTimeBoxes(part, state);
         }
     }
                               );
     ActivityTraceBuilder.Buildv2(this);
 }
 internal void TimeBoxClearContainedEdits(TRB_PART part, TRB_STATE state, bool visibleOnly = true)
 {
     lock (tableLock)
     {
         ProjectCollection.ForEach(proj =>
         {
             if (proj.Visible || !visibleOnly)
             {
                 proj.TimeBoxClearContainedEdits(part, state);
             }
         }
                                   );
         _sortAndSanitize();
         _setTimeExtents();
         _organizeIntoProjects();
         ActivityTraceBuilder.Buildv2(this);
     }
 }
 internal void ToggleState(TRB_PART part, TRB_PART where, TRB_STATE state)
 {
     ProjectCollection.ForEach(proj => proj.ToggleState(part, where, state));
 }
 internal void UnsetState(TRB_PART part, TRB_PART where, TRB_STATE whereState, TRB_STATE state)
 {
     ProjectCollection.ForEach(proj => proj.UnsetState(part, where, whereState, state));
 }
 internal void SetState(TRB_PART part, TRB_STATE state)
 {
     ProjectCollection.ForEach(proj => proj.SetState(part, state));
 }
 private void TimeBoxProcess(Action <TimeBox> p)
 {
     ProjectCollection.ForEach(proj => proj.TimeBoxProcess(p));
 }