protected OrderProcessorDataSnapshot() {
			this.OrdersSubmitting		= new OrderListByState(OrderStatesCollections.AllowedForSubmissionToBrokerProvider);
			this.OrdersPending			= new OrderListByState(OrderStatesCollections.NoInterventionRequired);
			this.OrdersPendingFailed	= new OrderListByState(OrderStatesCollections.InterventionRequired);
			this.OrdersCemeteryHealthy	= new OrderListByState(OrderStatesCollections.CemeteryHealthy);
			this.OrdersCemeterySick		= new OrderListByState(OrderStatesCollections.CemeterySick);
			this.OrdersAll				= new OrderList("OrdersAll", this);
			//this.OrdersByAccount		= new Dictionary<Account, List<Order>>();

			this.SerializerLogrotateOrders	= new SerializerLogrotatePeriodic<Order>();
			this.OrdersTree				= new OrdersShadowTreeDerived();
		}
        protected OrderProcessorDataSnapshot()
        {
            this.OrdersSubmitting      = new OrderListByState(OrderStatesCollections.AllowedForSubmissionToBrokerProvider);
            this.OrdersPending         = new OrderListByState(OrderStatesCollections.NoInterventionRequired);
            this.OrdersPendingFailed   = new OrderListByState(OrderStatesCollections.InterventionRequired);
            this.OrdersCemeteryHealthy = new OrderListByState(OrderStatesCollections.CemeteryHealthy);
            this.OrdersCemeterySick    = new OrderListByState(OrderStatesCollections.CemeterySick);
            this.OrdersAll             = new OrderList("OrdersAll", this);
            //this.OrdersByAccount		= new Dictionary<Account, List<Order>>();

            this.SerializerLogrotateOrders = new SerializerLogrotatePeriodic <Order>();
            this.OrdersTree = new OrdersShadowTreeDerived();
        }
		public void InitializeWithShadowTreeRebuilt(OrdersShadowTreeDerived ordersShadowTree) {
			//this.PopulateDataSnapshotInitializeSplittersAfterDockContentIsDone();
			this.ordersShadowTree = ordersShadowTree;
			//moved to PopulateDataSnapshotInitializeSplittersAfterDockContentIsDone() this.RebuildAllTreeFocusOnTopmost();

			this.DataSnapshotSerializer = new Serializer<ExecutionTreeDataSnapshot>(Assembler.InstanceInitialized.StatusReporter);
			bool createdNewFile = this.DataSnapshotSerializer.Initialize(Assembler.InstanceInitialized.AppDataPath,
				"Sq1.Widgets.ExecutionTreeDataSnapshot.json", "Workspaces" ,
				Assembler.InstanceInitialized.AssemblerDataSnapshot.CurrentWorkspaceName);
			this.DataSnapshot = this.DataSnapshotSerializer.Deserialize();
			if (createdNewFile) {
				this.DataSnapshot.ToggleMessagePaneSplittedHorizontally = (this.splitContainerMessagePane.Orientation == Orientation.Horizontal) ? true : false;
				this.DataSnapshot.MessagePaneSplitDistanceHorizontal = this.splitContainerMessagePane.SplitterDistance;
				int newDistance = this.splitContainerMessagePane.SplitterDistance - this.splitContainerMessagePane.SplitterWidth;
				this.DataSnapshot.MessagePaneSplitDistanceVertical = newDistance;
				this.DataSnapshotSerializer.Serialize();
			}
		}