예제 #1
0
        private void btnStopSyncSave_Click(object sender, EventArgs e)
        {
            if (_transpilerHandler != null)
            {
                _transpilerHandler.DisconnectEditor();
                _transpilerHandler = null;
                Unlocked();
            }

            btnStopSyncSave.Enabled = _transpilerHandler != null;
        }
예제 #2
0
        private void StartScriptEditor(string transpiler = "JavaScript")
        {
            try
            {
                _transpilerHandler = new JavaScriptTranspilerHandler(
                    _editor_owner.ServiceNodeHandler,
                    _editor_owner.Source,
                    transpiler == "TypeScript");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

            HideInof();
            Locked();

            _transpilerHandler.SourceUpdate += delegate
            {
                try
                {
                    ShowInfo("資料儲存中...");
                    Application.DoEvents();
                    jsEditor1.Text = _transpilerHandler.GetTypeScript();
                    // Source 可能會整個被調整過。
                    _editor_owner.Source = _transpilerHandler._source;
                    // Save 會把 jsEditor1.Text 寫入 _editor_owner.Soure 屬性。
                    // 這是原來的邏輯,未修改,需要呼叫是因為要儲存到 Server。
                    _editor_owner.Save();
                    ShowInfo("儲存完成...");
                    lblMessage.Visible = false;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("error: " + ex.Message);
                }
            };
            _transpilerHandler.StartEditor();
            btnStopSyncSave.Enabled = true;
        }