示例#1
0
 void OnGUI()
 {
     scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
     //@asvo,这里不明白为什么在ExcuteModule()后 mSettingData有时候会为null。暂时不清楚原因,先这样强行处理,mSettingData为null的时候重新载入.
     if (mSettingData != null)
     {
         ShowConntent();
     }
     else
     {
         ProtoBuildTool.ReloadSettingData();
     }
     EditorGUILayout.EndScrollView();
 }
    void ExecPartialFiles(List <BaseWindowListData> partialDataList)
    {
        string tempExcelDir = ProtoBuildTool.tempExcelDir;

        //拷贝文件到临时目录
        if (Directory.Exists(tempExcelDir))
        {
            //清空目录下的excel文件
            DirectoryInfo directoryInfo = new DirectoryInfo(tempExcelDir);
            foreach (var fileInfo in directoryInfo.GetFiles())
            {
                string name = fileInfo.Name;
                if (name.EndsWith(".xls") || name.EndsWith(".xlsx"))
                {
                    File.Delete(fileInfo.FullName);
                }
            }
        }
        else
        {
            Directory.CreateDirectory(tempExcelDir);
        }
        int fileCount = 0;

        foreach (var selectFile in partialDataList)
        {
            string srcFilePath  = OriginFilePath + "/" + selectFile.name;
            string destFilePath = tempExcelDir + "/" + selectFile.name;
            if (File.Exists(srcFilePath))
            {
                ++fileCount;
                File.Copy(srcFilePath, destFilePath, true);
            }
        }
        if (0 == fileCount)
        {
            ProtoBuildTool.ShowDialog("没有任何文件被选中!");
            return;
        }
        ProtoBuildTool.ExcuteModule(false, isNeedSyncCsv2Server);

        //同步
        if (isNeedSyncCsv2Server)
        {
            string exprotCsvPath = toolsPath + "/python_protoc/csv/";
            //DirectoryInfo info = new DirectoryInfo(ProtoBuildTool.serverCsvDataDir);
            EditorConfig.CopyDir(exprotCsvPath, ProtoBuildTool.serverCsvDataDir.Replace("/", "\\"));
        }
    }
示例#3
0
    void ShowConntent()
    {
        EditorGUILayout.BeginVertical();

        EditorGUILayout.BeginHorizontal();
        useDefaultConfig = GUILayout.Toggle(useDefaultConfig, "", GUILayout.Width(30));
        GUILayout.Label("是否使用默认配置", GUILayout.Width(100));
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(20);
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Excel文件目录", GUILayout.Width(100));
        GUILayout.Label(mSettingData.excelPath, GUILayout.Width(500));
        if (GUILayout.Button("设置", GUILayout.Width(80)))
        {
            mSettingData.excelPath = EditorUtility.OpenFolderPanel("选择excel路径", "", "");
        }
        EditorGUILayout.EndHorizontal();
        GUILayout.Space(20);
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("生成bytes路径", GUILayout.Width(100));
        GUILayout.Label(mSettingData.bytesPath, GUILayout.Width(500));
        if (GUILayout.Button("设置", GUILayout.Width(80)))
        {
            mSettingData.bytesPath = EditorUtility.OpenFolderPanel("选择bytes路径", "", "");
        }
        EditorGUILayout.EndHorizontal();
        GUILayout.Space(20);
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("生成C#代码路径", GUILayout.Width(100));
        GUILayout.Label(mSettingData.csPath, GUILayout.Width(500));
        if (GUILayout.Button("设置", GUILayout.Width(80)))
        {
            mSettingData.csPath = EditorUtility.OpenFolderPanel("选择C#代码路径", "", "");
        }
        EditorGUILayout.EndHorizontal();
        GUILayout.Space(20);
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("commdef.proto所在目录", GUILayout.Width(100));
        GUILayout.Label(mSettingData.commdefPath, GUILayout.Width(500));
        if (GUILayout.Button("设置", GUILayout.Width(80)))
        {
            mSettingData.commdefPath = EditorUtility.OpenFolderPanel("commdef.proto所在目录", "", "");
        }
        EditorGUILayout.EndHorizontal();
        GUILayout.Space(20);
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("tools目录路径", GUILayout.Width(100));
        GUILayout.Label(mSettingData.protoToolsDir, GUILayout.Width(500));
        if (GUILayout.Button("设置", GUILayout.Width(80)))
        {
            mSettingData.protoToolsDir = EditorUtility.OpenFolderPanel("tools目录路径", "", "");
        }
        EditorGUILayout.EndHorizontal();
        GUILayout.Space(20);
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("保存设置", GUILayout.Width(150)))
        {
            ProtoBuildTool.SaveConfig(useDefaultConfig);
        }
        if (GUILayout.Button("一键导出excel+重新生成代码和数据", GUILayout.Width(250)))
        {
            ProtoBuildTool.ExcuteModule();
        }
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(30);
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("打开生成列表窗口", GUILayout.ExpandWidth(true)))
        {
            BuildProtoListWindow bplw = (BuildProtoListWindow)EditorWindow.GetWindow <BuildProtoListWindow> ();
            bplw.titleContent.text = "生成列表窗口";
            bplw.InitListWindow(mSettingData.excelPath, mSettingData.bytesPath, mSettingData.csPath,
                                mSettingData.protoToolsDir);
            bplw.Show();
        }
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.EndVertical();
    }
 protected override void ExecAll()
 {
     ProtoBuildTool.ExcuteModule(true, isNeedSyncCsv2Server);
 }