Unvell.ReoScript.Editor.ReoScriptEditor.ReoScriptEditor C# (CSharp) Method

ReoScriptEditor() public method

public ReoScriptEditor ( ) : System
return System
        public ReoScriptEditor()
        {
            InitializeComponent();

            newToolStripButton.Click += (s, e) => NewFile();
            newToolStripMenuItem.Click += (s, e) => NewFile();

            openToolStripButton.Click += (s, e) => LoadFile();
            openToolStripMenuItem.Click += (s, e) => LoadFile();

            saveToolStripButton.Click += (s, e) => SaveFile(false);
            saveToolStripMenuItem.Click += (s, e) => SaveFile(false);
            saveAsToolStripMenuItem.Click += (s, e) => SaveFile(true);

            runToolStripButton.Click += (s, e) => RunScript();
            runToolStripMenuItem.Click += (s, e) => RunScript();

            cutToolStripButton.Click += (s, e) => editor.Fctb.Cut();
            cutToolStripMenuItem.Click += (s, e) => editor.Fctb.Cut();

            copyToolStripButton.Click += (s, e) => editor.Fctb.Copy();
            copyToolStripMenuItem.Click += (s, e) => editor.Fctb.Copy();

            pasteToolStripMenuItem.Click += (s, e) => editor.Fctb.Paste();
            pasteToolStripDropDownButton.Click += (s, e) => editor.Fctb.Paste();

            undoToolStripButton.Click += (s, e) => editor.Fctb.Undo();
            undoToolStripMenuItem.Click += (s, e) => editor.Fctb.Undo();

            redoToolStripButton.Click += (s, e) => editor.Fctb.Redo();
            redoToolStripMenuItem.Click += (s, e) => editor.Fctb.Redo();

            using (StreamReader sr = new StreamReader(new MemoryStream(Resources.default_rs)))
            {
                editor.Text = sr.ReadToEnd();
            }

            console.LineReceived += (s, e) =>
            {
                Log("\n");

                if (!string.IsNullOrEmpty(e.Text))
                {
                    try
                    {
                        //string line = e.Text;
                        //if (!line.EndsWith(";")) line += ";";

                        object val = srm.CalcExpression(e.Text);
                        LogValue(val);
                    }
                    catch (Exception ex)
                    {
                        Log("error: " + ex.Message);
                    }
                }
            };

            timer.Tick += (s, e) =>
            {
                bool running = srm == null ? false : srm.IsRunning;

                runToolStripButton.Enabled =
                    runToolStripMenuItem.Enabled =
                    !running;

                stopToolStripButton.Enabled =
                    stopToolStripMenuItem.Enabled =
                    running;

                if (!running)
                {
                    timer.Enabled = false;
                }
            };

            stopToolStripButton.Click += (s, e) => ForceStop();
            stopToolStripMenuItem.Click += (s, e) => ForceStop();

            checkSyntaxStripButton.Click += (s, e) =>
            {
                srm.Compile(editor.Text, r => Log(r.Message));

                if (ScriptCompiled != null)
                {
                    ScriptCompiled(this, null);
                }
            };

            editor.TextChanged += (s, e) =>
            {
                if (ScriptChanged != null)
                {
                    ScriptChanged(this, e);
                }
            };

            Srm = new ScriptRunningMachine();
        }