Beispiel #1
0
        public bool ExcecuteCodeAndGenerateDocument(CodeEvaluationEventArgs args)
        {
            string theCode = String.Concat(CodeStart, args.Code, CodeEnd);

            string[] linesOfCode = new string[] { theCode };
            return(CompileAndRun(linesOfCode, args.EvaluationParameter));
        }
Beispiel #2
0
 void InitializeCodeEvaluationEventArgs(CodeEvaluationEventArgs e, string regionName)
 {
     e.Result              = true;
     e.Code                = codeEditor.CurrentCodeEditor.Text;
     e.Language            = CurrentExampleLanguage;
     e.EvaluationParameter = spreadsheet.Document;
     e.RegionName          = regionName;
 }
Beispiel #3
0
        public void ForceCompile(CodeEvaluationEventArgs args)
        {
            compileComplete = false;
            if (!String.IsNullOrEmpty(args.Code))
            {
                CompileExampleAndShowPrintPreview(args);
            }

            compileComplete = true;
        }
Beispiel #4
0
 //public event CodeEvaluationEventHandler QueryEvaluateEvent {
 //    add { onQeuryEvaluate += value; }
 //    remove { onQeuryEvaluate -= value; }
 //}
 protected internal virtual CodeEvaluationEventArgs RaiseQueryEvaluate()
 {
     if (QueryEvaluate != null)
     {
         CodeEvaluationEventArgs args = new CodeEvaluationEventArgs();
         QueryEvaluate(this, args);
         return(args);
     }
     return(null);
 }
Beispiel #5
0
        void CompileExampleAndShowPrintPreview(CodeEvaluationEventArgs args)
        {
            bool evaluationSucceed = false;

            try {
                RaiseOnBeforeCompile();

                evaluationSucceed = Evaluate(args);
            }
            finally {
                RaiseOnAfterCompile(evaluationSucceed);
            }
        }
Beispiel #6
0
        public void CompileExample(object sender, EventArgs e)
        {
            if (!compileComplete)
            {
                return;
            }
            CodeEvaluationEventArgs args = RaiseQueryEvaluate();

            if (!args.Result)
            {
                return;
            }

            ForceCompile(args);
        }
Beispiel #7
0
        void OnExampleEvaluatorQueryEvaluate(object sender, CodeEvaluationEventArgs e)
        {
            e.Result = false;
            if (codeEditor.RichEditTextChanged)
            {// && compileComplete) {
                TimeSpan span = DateTime.Now - codeEditor.LastExampleCodeModifiedTime;

                if (span < TimeSpan.FromMilliseconds(1000))
                {//CompileTimeIntervalInMilliseconds  1900
                    codeEditor.ResetLastExampleModifiedTime();
                    return;
                }
                //e.Result = true;
                InitializeCodeEvaluationEventArgs(e, e.RegionName);
            }
        }
Beispiel #8
0
        void OnNewExampleSelected(object sender, FocusedNodeChangedEventArgs e)
        {
            CodeExample newExample = (sender as TreeList).GetDataRecordByNode(e.Node) as CodeExample;
            CodeExample oldExample = (sender as TreeList).GetDataRecordByNode(e.OldNode) as CodeExample;

            if (newExample == null)
            {
                return;
            }

            string exampleCode = codeEditor.ShowExample(oldExample, newExample);

            codeExampleNameLbl.Text = CodeExampleDemoUtils.ConvertStringToMoreHumanReadableForm(newExample.RegionName) + " example";
            CodeEvaluationEventArgs args = new CodeEvaluationEventArgs();

            InitializeCodeEvaluationEventArgs(args, newExample.RegionName);
            evaluator.ForceCompile(args);
        }
Beispiel #9
0
        public bool Evaluate(CodeEvaluationEventArgs args)
        {
            ExampleCodeEvaluator spreadsheetExampleCodeEvaluator = GetExampleCodeEvaluator(args.Language);

            return(spreadsheetExampleCodeEvaluator.ExcecuteCodeAndGenerateDocument(args));
        }