Beispiel #1
0
        private async void Deploy_Execute(object sender, ExecutedRoutedEventArgs e)
        {
            var proj = this.Model.SelectedProject;

            if (proj == null)
            {
                MessageBox.Show("대상 프로젝트를 찾을 수 없습니다.", "DeXign", MessageBoxButton.OK);
                return;
            }

            this.BeginDebugging("업로드중...");

            await t.Task.Delay(200);

            // 저장
            proj.Save();

            var jsLogicUnit = new LogicGeneratorUnit(GlobalModel.Instance.SelectedProject.ServerComponents);
            var jsGenerator = new JSGenerator(jsLogicUnit, null, null);

            string[] jsFunctions = jsGenerator.Generate().ToArray();

            for (int i = 0; i < jsFunctions.Length; i++)
            {
                var res = await DXLambda.Deploy(GlobalModel.Instance.User, jsFunctions[i]);

                GlobalModel.Instance.CompileProgress = (i + 1d) / jsFunctions.Length;
            }

            this.EndDebugging();

            await t.Task.Delay(200);

            GlobalModel.Instance.IsDebugging = false;
        }
Beispiel #2
0
    public static void GenBindings()
    {
        //var d = typeof(UnityEngine.MonoBehaviour).GetConstructors();
        //Debug.Log("d.length=" + d.Length);
        //return;

        if (EditorApplication.isCompiling)
        {
            EditorUtility.DisplayDialog("提示",
                                        "等待Unity编译完再点",
                                        "确定"
                                        );
            return;
        }

        Type[]           arrEnums, arrClasses;
        HashSet <string> bridgeTypes;

        if (!JSBindingSettings.CheckClasses(out arrEnums, out arrClasses, out bridgeTypes))
        {
            return;
        }

        JSDataExchangeEditor.reset();
        UnityEngineManual.initManual();
        CSGenerator.GenBindings(arrEnums, arrClasses);
        JSGenerator.GenBindings(arrEnums, arrClasses);
        CSWrapGenerator.GenWraps(arrEnums, arrClasses, bridgeTypes);

        AssetDatabase.Refresh();
    }
Beispiel #3
0
    public static void GenBindings()
    {
        if (EditorApplication.isCompiling)
        {
            EditorUtility.DisplayDialog("Tip:", "please wait EditorApplication compiling", "OK");
            return;
        }

        Type[] classes = JSBindingSettings.CheckClassBindings();
        if (classes == null)
        {
            return;
        }

//		if (!EditorUtility.DisplayDialog("Tip",
//		                                 "Files in these directories will all be deleted and re-created: \n" +
//                                         JSBindingSettings.csGenDir + "\n",
//                                         "OK", "Cancel")
//		    )
//		{
//			return;
//		}

        CSGenerator.Log                  = JSGenerator.Log = Debug.Log;
        CSGenerator.LogError             = JSGenerator.LogError = Debug.LogError;
        JSGenerator.Application_dataPath = Application.dataPath;

        JSDataExchangeEditor.reset();
        UnityEngineManual.InitManual();
        CSGenerator.GenBindings(classes);
        JSGenerator.GenBindings(classes, JSBindingSettings.enums);
        UnityEngineManual.AfterUse();

        AssetDatabase.Refresh();
    }
Beispiel #4
0
    public static void GenerateClassBindings()
    {
        if (!typeClassName.ContainsKey(typeof(UnityEngine.Object)))
        {
            typeClassName.Add(typeof(UnityEngine.Object), "UnityObject");
        }

        JSGenerator.OnBegin();

        // enums
        for (int i = 0; i < JSBindingSettings.enums.Length; i++)
        {
            JSGenerator.Clear();
            JSGenerator.type = JSBindingSettings.enums[i];
            JSGenerator.GenerateEnum();
        }

        // classes
        for (int i = 0; i < JSBindingSettings.classes.Length; i++)
        {
            JSGenerator.Clear();
            JSGenerator.type = JSBindingSettings.classes[i];
            if (!typeClassName.TryGetValue(type, out className))
            {
                className = type.Name;
            }
            JSGenerator.GenerateClass();
        }

        JSGenerator.OnEnd();

        Debug.Log("Generate JS Bindings finish. enum " + JSBindingSettings.enums.Length.ToString() + ", class " + JSBindingSettings.classes.Length.ToString());
    }
Beispiel #5
0
        public void GenerateJSSource()
        {
            var t_Schema = new Schema
            {
                Name   = "TestSchema",
                Tables = new List <Table>
                {
                    new Table
                    {
                        Name    = "TestTable",
                        Columns = new Dictionary <int, Column>
                        {
                            { 0, new Column {
                                  Name = "Id", Type = COLUMN_DATA_TYPE.INTEGER
                              } }
                        }
                    }
                }
            };

            var t_JSGen = new JSGenerator();
            var t_Files = t_JSGen.GenerateSource(t_Schema);

            Assert.IsTrue(t_Files.Count == 1 && t_Files[0].Name == "TestSchema.js" && t_Files[0].Content.Length > 0);
        }
        static void Main(string[] args)
        {
            ShowHeading.Content("TechProphecy - JS File Generator", ConsoleColor.Cyan, "=");
            while (true)
            {
                ShowHeading.Content("Choose option to generate JS file: ", ConsoleColor.Blue, "-", true);
                ShowOptions();
                var selectedOption = Console.ReadLine();
                switch (selectedOption)
                {
                case "1":
                    JSGenerator.GenerateHtmlwithFirestoreCrud();
                    break;

                case "2":
                    JSGenerator.GenerateHtml();
                    break;

                case "3":
                    JSGenerator.GenerateCompleteCrud();
                    break;

                case "4":
                    JSGenerator.GenerateCustom();
                    break;

                default:
                    ShowText.WarningMessage("Please choose valid option");
                    break;
                }
            }
        }
Beispiel #7
0
    public static void GenBindings(Type[] types, Type[] enums)
    {
        JSGenerator.Classes = types;
        JSGenerator.Enums   = enums;
        JSGenerator.OnBegin();

        // enums
        for (int i = 0; i < Enums.Length; i++)
        {
            JSGenerator.Clear();
            JSGenerator.type = Enums[i];
            JSGenerator.GenerateEnum();
        }

        // typeName -> member list
        Dictionary <string, List <string> > allDefs = new Dictionary <string, List <string> >();

        // classes
        for (int i = 0; i < Classes.Length; i++)
        {
            JSGenerator.Clear();
            JSGenerator.type = Classes[i];
            if (!typeClassName.TryGetValue(type, out className))
            {
                className = type.Name;
            }


            List <string> memberNames = JSGenerator.GenerateClass();
            allDefs.Add(SharpKitClassName(type), memberNames);
        }

        JSGenerator.OnEnd();

        StringBuilder sb = new StringBuilder();

        foreach (var KV in allDefs)
        {
            sb.AppendFormat("[{0}]\r\n", KV.Key);

            var lst = KV.Value;
            foreach (var l in lst)
            {
                sb.AppendFormat("    {0}\r\n", l);
            }
            sb.Append("\r\n");
        }

        string dir = Application_dataPath + "/Temp";

        Directory.CreateDirectory(dir);
        File.WriteAllText(dir + "/AllExportedMembers.txt", sb.ToString());

        Log("Generate JS Bindings OK. enum " + Enums.Length.ToString() + ", class " + Classes.Length.ToString());
    }
Beispiel #8
0
    //[MenuItem("JSBinding/Generate JS Bindings")]
    public static void GenerateClassBindings()
    {
//         if (!typeClassName.ContainsKey(typeof(UnityEngine.Object)))
//             typeClassName.Add(typeof(UnityEngine.Object), "UnityObject");

        JSGenerator.OnBegin();

        // enums
        for (int i = 0; i < JSBindingSettings.enums.Length; i++)
        {
            JSGenerator.Clear();
            JSGenerator.type = JSBindingSettings.enums[i];
            JSGenerator.GenerateEnum();
        }

        // typeName -> member list
        Dictionary <string, List <string> > allDefs = new Dictionary <string, List <string> >();

        // classes
        for (int i = 0; i < JSBindingSettings.classes.Length; i++)
        {
            JSGenerator.Clear();
            JSGenerator.type = JSBindingSettings.classes[i];
            if (!typeClassName.TryGetValue(type, out className))
            {
                className = type.Name;
            }


            List <string> memberNames = JSGenerator.GenerateClass();
            allDefs.Add(SharpKitClassName(type), memberNames);
        }

        JSGenerator.OnEnd();

        StringBuilder sb = new StringBuilder();

        foreach (var KV in allDefs)
        {
            sb.AppendFormat("[{0}]\r\n", KV.Key);

            var lst = KV.Value;
            foreach (var l in lst)
            {
                sb.AppendFormat("    {0}\r\n", l);
            }
            sb.Append("\r\n");
        }
        File.WriteAllText(JSAnalyzer.GetAllExportedMembersFile(), sb.ToString());

        Debug.Log("Generate JS Bindings OK. enum " + JSBindingSettings.enums.Length.ToString() + ", class " + JSBindingSettings.classes.Length.ToString());
    }
			/// <summary>
			/// Initializes a new instance of the <see cref="JSElementGenerator"/> class.
			/// </summary>
			/// <param name="generator">The generator.</param>
			/// <param name="root">The root.</param>
			public JSElementGenerator(JSGenerator generator, String root)
			{
				this.generator = generator;

				JSGenerator.Record(generator, "$('" + root + "')");
			}
			/// <summary>
			/// Initializes a new instance of the <see cref="JSCollectionGenerator"/> class.
			/// </summary>
			/// <param name="generator">The generator.</param>
			/// <param name="root">The root</param>
			public JSCollectionGenerator(JSGenerator generator, String root)
			{
				this.generator = generator;

				JSGenerator.Record(generator, "$$('" + root + "')");
			}