public static BlockEditorLogicBase GetPLBlockEditorLogic(this ICoreObject block,
                                                                 IWorkingContext ViewWorkingContext        = null,
                                                                 LanguageServiceContainer serviceContainer = null,
                                                                 ISynchronizeInvoke synchronizer           = null)
        {
            ISynchronizeInvoke UsingSynchronizer;

            if (synchronizer == null)
            {
                UsingSynchronizer = block.GetSynchronizer();
            }
            else
            {
                UsingSynchronizer = synchronizer;
            }
            return(TiaStarter.RunInSynchronizer(UsingSynchronizer,
                                                () =>
            {
                PLBlockEditorLogic pl = new PLBlockEditorLogic();
                IWorkingContext iwc = block.GetWorkingContext();
                pl.Attach(iwc);
                pl.PostAttach();


                EditorPayload ep = new EditorPayload(block, ViewWorkingContext, serviceContainer);
                pl.SetPayload(ep);
                OnlineManagerBase OnlineManager = pl.OnlineManager;
                return pl;
            }) as BlockEditorLogicBase);
        }
Exemple #2
0
        private void OpenLadder()
        {
            this.gbec = Program.app.GetBlockEditor(pl);
            pLBlockEditorControlElementProxy =
                new PLBlockEditorControlElementProxy(this.gbec);
            OnlineManagerBase plOnlineManager = pLBlockEditorControlElementProxy.PLBlockEditorLogic.OnlineManager;

            plOnlineManager.GoOnline();
            plOnlineManager.StartProgramStatus();
            Controls.Add(this.gbec);

            this.gbec.DisablePLBlockInput();
        }
Exemple #3
0
        private void TestGetLadderEditor()
        {
            this.gbec = Program.app.GetBlockEditor(graph);
            GraphBlockEditorControlProxy pLBlockEditorControlElementProxy =
                new GraphBlockEditorControlProxy(this.gbec);
            OnlineManagerBase plOnlineManager = pLBlockEditorControlElementProxy.GraphBlockEditorLogic.OnlineManager;

            plOnlineManager.GoOnline();
            plOnlineManager.StartProgramStatus();

            List <IUIControl> children = pLBlockEditorControlElementProxy.GetChildUIControls();

            Controls.Add(this.gbec);
        }
        public static BlockEditorLogicBase GetPLBlockEditorLogic(this ICoreObject block,
                                                                 IWorkingContext ViewWorkingContext        = null,
                                                                 LanguageServiceContainer serviceContainer = null,
                                                                 ISynchronizeInvoke synchronizer           = null)
        {
            ISynchronizeInvoke UsingSynchronizer;

            if (synchronizer == null)
            {
                UsingSynchronizer = block.GetSynchronizer();
            }
            else
            {
                UsingSynchronizer = synchronizer;
            }
            if (UsingSynchronizer.InvokeRequired)
            {
                return(UnifiedSynchronizerAccess.Invoke(UsingSynchronizer,
                                                        new GetPLBlockEditorLogicDelegate(GetPLBlockEditorLogic), new object[4]
                {
                    block,
                    ViewWorkingContext,
                    serviceContainer,
                    synchronizer
                }).InvokeResult as BlockEditorLogicBase);
            }

            PLBlockEditorLogic pl  = new PLBlockEditorLogic(EditorMode.Normal);
            IWorkingContext    iwc = block.GetWorkingContext();

            pl.Attach(iwc);
            //pl.Attach(ViewWorkingContext);
            pl.PostAttach();


            EditorPayload ep = new EditorPayload(block, ViewWorkingContext, serviceContainer);

            pl.SetPayload(ep);

            //Reflector.RunInstanceMethodByName(pl, "CreateOnlineManager");


            OnlineManagerBase OnlineManager = pl.OnlineManager;

            return(pl);
        }
Exemple #5
0
        private void OpenGraph()
        {
            this.gbec = Program.app.GetBlockEditor(graph);
            GraphBlockEditorControlProxy pLBlockEditorControlElementProxy =
                new GraphBlockEditorControlProxy(this.gbec);

            //pLBlockEditorControlElementProxy.BasicDrawSettings.StepBackground = Brushes.DarkBlue;
            //Font stepNameFont = new Font("Consolas", pLBlockEditorControlElementProxy.BasicDrawSettings.StepNameFont.Size);
            //pLBlockEditorControlElementProxy.BasicDrawSettings.StepNameFont = stepNameFont;

            OnlineManagerBase plOnlineManager = pLBlockEditorControlElementProxy.GraphBlockEditorLogic.OnlineManager;

            plOnlineManager.GoOnline();
            plOnlineManager.StartProgramStatus();


            List <IUIControl> children = pLBlockEditorControlElementProxy.GetChildUIControls();

            Controls.Add(this.gbec);
            var cs = this.gbec.Controls;

            this.gbec.DisableGraphBlockInput();
        }