/*       / \
         *     // | \\
         *    /   |   \
         *        |           */
        public void Initialize(IEventManager eventMgr, IPhysicalProcessor physProc,
            IRandomizerFactory randomizerFactory, IReportObserver reporter)
        {
            _eventManager = eventMgr;
            _physicalProcessor = physProc;
            _randomizerFactory = randomizerFactory;
            _reporter = reporter;
            _isInitialized = true;

            panelObjsHelper = new PanelObjHelper(panelObjs);
            _NUM_ID_BYTES = panelObjsHelper.GetIntByName("NUM_ID_BYTES");
            _RANDOM_WAIT = panelObjsHelper.GetDoubleByName("RANDOM_WAIT");
            _TIMER_ACK = panelObjsHelper.GetDoubleByName("TIMER_ACK");
            _TIMER_BUILDTREE = panelObjsHelper.GetDoubleByName("TIMER_BUILDTREE");
            _TIMER_HELLO = panelObjsHelper.GetDoubleByName("TIMER_HELLO");
            _TIMER_SEARCH = panelObjsHelper.GetDoubleByName("TIMER_SEARCH");
            _TIMER_SUBSCRIBE = panelObjsHelper.GetDoubleByName("TIMER_SUBSCRIBE");
            _HELLO_SUPPRESS_REPORT = panelObjsHelper.GetBoolByName("CHECK_HELLOSUPPRESS");
            _EXPLICIT_COLLISIONS = panelObjsHelper.GetBoolByName("CHECK_EXPLICIT_COLLISIONS");
            //_INFO_REPORTS = panelObjsHelper.GetBoolByName("INFO_REPORTS");
            _NODE_REPORTS = panelObjsHelper.GetBoolByName("NODE_REPORTS");
            _SINK_REPORTS = panelObjsHelper.GetBoolByName("SINK_REPORTS");
        }
        public void Initialize()
        {
            if (isInitialized)
                return;

            panelObjsHelper = new PanelObjHelper(panelObjs);
            if (panelObjsHelper.GetBoolByName("SpecifySeed"))
            {
                SetSeed(panelObjsHelper.GetIntByName("Seed"));
            }
            else
                panelObjsHelper.SetByName("Seed", seed);
            initialRandomizer = new MersennePlusN(this.seed);
            isInitialized = true;
        }