private static string GetConnstraint(SQLite3Constraint InConstraint) { if (InConstraint == SQLite3Constraint.Default) { return(string.Empty); } else { string constraint = string.Empty; if ((InConstraint & SQLite3Constraint.PrimaryKey) != 0) { constraint += " PRIMARY KEY "; } if ((InConstraint & SQLite3Constraint.AutoIncrement) != 0) { constraint += " AUTOINCREMENT "; } if ((InConstraint & SQLite3Constraint.NotNull) != 0) { constraint += " NOT NULL "; } if ((InConstraint & SQLite3Constraint.Unique) != 0) { constraint += " UNIQUE "; } return(constraint); } }
public SQLite3ConstraintAttribute(SQLite3Constraint InConstraint) { constraint = string.Empty; if ((InConstraint & SQLite3Constraint.PrimaryKey) == SQLite3Constraint.PrimaryKey) { constraint += "PRIMARY KEY "; } if ((InConstraint & SQLite3Constraint.AutoIncrement) == SQLite3Constraint.AutoIncrement) { constraint += "AUTOINCREMENT "; } if ((InConstraint & SQLite3Constraint.Unique) == SQLite3Constraint.Unique) { constraint += "UNIQUE "; } if ((InConstraint & SQLite3Constraint.NotNull) == SQLite3Constraint.NotNull) { constraint += "NOT NULL "; } }
public static string ConvertSQLite3ConstraintToStr(SQLite3Constraint InConstraint) { string result = string.Empty; if ((InConstraint & SQLite3Constraint.PrimaryKey) != 0) { result += " PrimaryKey "; } if ((InConstraint & SQLite3Constraint.Unique) != 0) { result += " Unique "; } if ((InConstraint & SQLite3Constraint.AutoIncrement) != 0) { result += " AutoIncrement "; } if ((InConstraint & SQLite3Constraint.NotNull) != 0) { result += " NotNull "; } return(result == string.Empty ? string.Empty : result.Remove(result.Length - 1, 1)); }
public static string ConvertToString(SQLite3Constraint InConstraint) { string result = string.Empty; if ((InConstraint & SQLite3Constraint.PrimaryKey) != 0) { result += "SQLite3Constraint.PrimaryKey | "; } if ((InConstraint & SQLite3Constraint.Unique) != 0) { result += "SQLite3Constraint.Unique | "; } if ((InConstraint & SQLite3Constraint.AutoIncrement) != 0) { result += "SQLite3Constraint.AutoIncrement | "; } if ((InConstraint & SQLite3Constraint.NotNull) != 0) { result += "SQLite3Constraint.NotNull | "; } return(result == string.Empty ? string.Empty : result.Remove(result.Length - 2, 2)); }
void OnGUI() { GUILayout.Label("Excel To SQLite3 Table", EditorStyles.boldLabel); EditorGUILayout.BeginVertical("box"); { EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { isSingleFile = EditorGUILayout.ToggleLeft("Single Excel", isSingleFile, GUILayout.Width(245)); isSingleFile = !EditorGUILayout.ToggleLeft("Excel Directory", !isSingleFile, GUILayout.Width(245)); if (preSelect != isSingleFile) { TableData[][] temp = tableData; tableData = preTableData; preTableData = temp; preSelect = isSingleFile; EditorPrefs.SetBool(selectPrefsKey, isSingleFile); } } GUILayout.EndHorizontal(); GUILayout.Space(15); if (isSingleFile) { GUILayout.BeginHorizontal(); { singlePathConfig.ExcelPath = EditorGUILayout.TextField("Excel Path", singlePathConfig.ExcelPath, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { string singlePath = singlePathConfig.ExcelPath; int index = singlePath.LastIndexOf("/", StringComparison.Ordinal); string path = -1 == index ? singlePath : singlePath.Substring(0, index); path = EditorUtility.OpenFilePanel("Open Excel Path", path, "xlsx,xls"); if (!string.IsNullOrEmpty(path)) { if (path.Contains(dataPath)) { singlePath = path.Replace(dataPath, "Assets"); } else { Debug.LogWarning("Can not open the floder out of the project path!"); singlePath = path; } singlePathConfig.ExcelPath = singlePath; } } } GUILayout.EndHorizontal(); if (GUILayout.Button("Preview")) { if (string.IsNullOrEmpty(singlePathConfig.ExcelPath)) { EditorUtility.DisplayDialog("Tips", "Please select an excel file first.", "OK"); } else { LoadExcel(dataPath + singlePathConfig.ExcelPath.Replace("Assets", string.Empty)); } } } else { GUILayout.BeginHorizontal(); { multiPathConfig.ExcelPath = EditorGUILayout.TextField("Excel Directory", multiPathConfig.ExcelPath, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { string multiPath = multiPathConfig.ExcelPath; string path = EditorUtility.OpenFolderPanel("Open Excel Directory", multiPath, ""); if (!string.IsNullOrEmpty(path)) { if (path.Contains(dataPath)) { multiPath = path.Replace(dataPath, "Assets"); multiPathConfig.ExcelPath = multiPath; } else { EditorUtility.DisplayDialog("Warning", "Can not open the floder out of the project path!", "OK"); } } } } GUILayout.EndHorizontal(); if (GUILayout.Button("Preview")) { if (string.IsNullOrEmpty(multiPathConfig.ExcelPath)) { EditorUtility.DisplayDialog("Tips", "Please select a directory where excel is stored.", "OK"); } else { LoadExcelDirectory(dataPath + multiPathConfig.ExcelPath.Replace("Assets", string.Empty)); } } } } EditorGUILayout.EndVertical(); if (null != tableData) { sheetLength = tableData.Length; config = isSingleFile ? singlePathConfig : multiPathConfig; EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { config.DbPath = EditorGUILayout.TextField("Database Save Path", config.DbPath, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { string path = config.DbPath; int index = path.LastIndexOf("/", StringComparison.Ordinal); path = -1 == index ? path : path.Substring(0, index); path = EditorUtility.SaveFilePanel("Database Save Path", path, "Database", "db"); if (!string.IsNullOrEmpty(path)) { if (path.Contains(dataPath)) { config.DbPath = path.Replace(dataPath, "Assets"); } else { Debug.LogWarning("Can not open the floder out of the project path!"); config.DbPath = path; } } } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { config.ScriptPath = EditorGUILayout.TextField("Script Save Directory", config.ScriptPath, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { string path = EditorUtility.OpenFolderPanel("Script Save Directory", config.ScriptPath, ""); if (!string.IsNullOrEmpty(path)) { if (path.Contains(dataPath)) { config.ScriptPath = path.Replace(dataPath, "Assets") + "/"; } else { Debug.LogWarning("Can not open the floder out of the project path!"); config.ScriptPath = path + "/"; } } } } GUILayout.EndHorizontal(); if (!isSingleFile && sheetLength > 1) { if (GUILayout.Button("Create All")) { try { if (string.IsNullOrEmpty(config.DbPath)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the database.", "OK"); } else { if (string.IsNullOrEmpty(config.ScriptPath)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the script.", "OK"); } else { string dbpath = config.DbPath.Remove(0, 7); //SQLite3Creator.DeleteDatabase(dbpath); for (int i = 0; i < sheetLength; i++) { rowLength = tableData[i].Length; for (int j = 0; j < rowLength; j++) { if (tableData[i][j].IsEnable) { progressValue = 1.0f; if (tableData[i][j].IsNeedCreateScript) { progressValue = .5f; EditorUtility.DisplayProgressBar("Convert excel to cshap script...", "Convert excel named: " + tableData[i][j].TableName, i * progressValue / sheetLength); ScriptWriter.Writer(multiPathConfig.ScriptPath + tableData[i][j].TableName + ".cs", ref tableData[i][j]); } EditorUtility.DisplayProgressBar("Convert excel to sqlite3 table...", "Convert excel named: " + tableData[i][j].TableName, i * .5f / sheetLength); SQLite3Creator.Creator(ref tableData[i][j], dbpath); } } } EditorUtility.DisplayProgressBar("CompileCSharp Script...", "Please Waiting...", 1.5f); EditorUtility.ClearProgressBar(); EditorUtility.DisplayDialog("Tips", "Convert excel to sqlite3 table finished.", "OK"); } } } catch (Exception ex) { EditorUtility.DisplayDialog("Error", "Convert excel to sqlite3 table has an error:" + ex.Message, "OK"); } Close(); } } } EditorGUILayout.EndVertical(); scrollPos = GUILayout.BeginScrollView(scrollPos); for (int i = 0; i < sheetLength; ++i) { if (null != tableData[i]) { rowLength = tableData[i].Length; for (int j = 0; j < rowLength; ++j) { EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { tableData[i][j].TableName = EditorGUILayout.TextField("Table Name", tableData[i][j].TableName, GUILayout.Width(440)); tableData[i][j].IsEnable = EditorGUILayout.ToggleLeft("Enable", tableData[i][j].IsEnable, GUILayout.Width(88)); } GUILayout.EndHorizontal(); if (tableData[i][j].IsEnable) { GUILayout.Space(10); EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { EditorGUILayout.LabelField("Property Name", centerTittleStyle, GUILayout.Width(104)); GUILayout.Space(4); EditorGUILayout.LabelField("Property Describe", centerTittleStyle, GUILayout.Width(286)); GUILayout.Space(4); EditorGUILayout.LabelField("SQLite3 Type", centerTittleStyle, GUILayout.Width(104)); } GUILayout.EndHorizontal(); GUILayout.Space(10); columnLength = tableData[i][j].ColumnName.Length; for (int k = 0; k < columnLength; ++k) { tableData[i][j].IsColumnEnables[k] = EditorGUILayout.BeginToggleGroup( "Enable", tableData[i][j].IsColumnEnables[k]); { GUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { tableData[i][j].ColumnName[k] = EditorGUILayout.TextField(tableData[i][j].ColumnName[k], GUILayout.MaxWidth(104)); GUILayout.Space(4); tableData[i][j].ColumnDescribes[k] = EditorGUILayout.TextField(tableData[i][j].ColumnDescribes[k], GUILayout.MaxWidth(286)); GUILayout.Space(4); tableData[i][j].SQLite3Types[k] = (SQLite3ValueType) EditorGUILayout.EnumPopup(tableData[i][j].SQLite3Types[k], GUILayout.MaxWidth(104)); //tableData[i][j].SQLite3Constraints[k] = // (SQLite3Constraint) // EditorGUILayout.EnumPopup(tableData[i][j].SQLite3Constraints[k], // GUILayout.MaxWidth(100)); } GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.BeginHorizontal("box"); { SQLite3Constraint constraint = tableData[i][j].SQLite3Constraints[k]; bool isPrimaryKey = (constraint & SQLite3Constraint.PrimaryKey) != 0; bool isAutoIncrement = (constraint & SQLite3Constraint.AutoIncrement) != 0; bool isNotNull = (constraint & SQLite3Constraint.NotNull) != 0; bool isUnique = (constraint & SQLite3Constraint.Unique) != 0; EditorGUILayout.LabelField("SQLite3 Constraint:", leftTittleStyle, GUILayout.Width(114)); isPrimaryKey = EditorGUILayout.ToggleLeft("PrimaryKey", isPrimaryKey, GUILayout.Width(80)); if (tableData[i][j].SQLite3Types[k] != SQLite3ValueType.INTEGER) { GUI.enabled = false; isAutoIncrement = false; } isAutoIncrement = EditorGUILayout.ToggleLeft("AutoIncrement", isAutoIncrement, GUILayout.Width(104)); GUI.enabled = true; if (isPrimaryKey) { isUnique = false; isNotNull = false; GUI.enabled = false; } isNotNull = EditorGUILayout.ToggleLeft("NotNull", isNotNull, GUILayout.Width(60)); isUnique = EditorGUILayout.ToggleLeft("Unique", isUnique, GUILayout.Width(60)); GUI.enabled = true; bool isDefault = !(isPrimaryKey || isAutoIncrement || isNotNull || isUnique); isDefault = EditorGUILayout.ToggleLeft("Default", isDefault, GUILayout.Width(60)); if (isDefault) { isPrimaryKey = isAutoIncrement = isNotNull = isUnique = false; } if (isDefault) { constraint = SQLite3Constraint.Default; } else { constraint = constraint & ~SQLite3Constraint.Default; } if (isPrimaryKey) { for (int m = 0; m < columnLength; m++) { tableData[i][j].SQLite3Constraints[m] &= ~SQLite3Constraint.PrimaryKey; } constraint |= SQLite3Constraint.PrimaryKey; } else { constraint = constraint & ~SQLite3Constraint.PrimaryKey; } if (isAutoIncrement) { constraint |= SQLite3Constraint.AutoIncrement; } else { constraint &= ~SQLite3Constraint.AutoIncrement; } if (isNotNull) { constraint |= SQLite3Constraint.NotNull; } else { constraint &= ~SQLite3Constraint.NotNull; } if (isUnique) { constraint |= SQLite3Constraint.Unique; } else { constraint &= ~SQLite3Constraint.Unique; } tableData[i][j].SQLite3Constraints[k] = constraint; } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } EditorGUILayout.EndToggleGroup(); } EditorGUILayout.BeginHorizontal("box"); { tableData[i][j].IsNeedCreateScript = EditorGUILayout.ToggleLeft("Need create or update script?", tableData[i][j].IsNeedCreateScript, GUILayout.Width(258)); GUILayout.Space(10); if (GUILayout.Button("Create", GUILayout.Width(242))) { try { if (string.IsNullOrEmpty(config.DbPath)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the database.", "OK"); } else { if (string.IsNullOrEmpty(config.ScriptPath)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the script.", "OK"); } else { if (tableData[i][j].IsNeedCreateScript) { ScriptWriter.Writer(config.ScriptPath + tableData[i][j].TableName + ".cs", ref tableData[i][j]); } SQLite3Creator.Creator(ref tableData[i][j], config.DbPath.Remove(0, 7)); EditorUtility.DisplayDialog("Tips", "Convert excel to sqlite3 table finished.", "OK"); if (isSingleFile) { Close(); } } } } catch (Exception ex) { EditorUtility.DisplayDialog("Error", "Convert excel to sqlite3 table has an error:" + ex.Message, "OK"); } } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); } } EditorGUILayout.EndVertical(); } } } EditorGUILayout.EndScrollView(); } } EditorGUILayout.EndVertical(); }
private void OnGUI() { GUILayout.Label("Excel To SQLite3 Table", EditorStyles.boldLabel); EditorGUILayout.BeginVertical("box"); { EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { isSingleFile = EditorGUILayout.ToggleLeft("Single Excel", isSingleFile, GUILayout.Width(245)); isSingleFile = !EditorGUILayout.ToggleLeft("Excel Directory", !isSingleFile, GUILayout.Width(245)); if (preSelect != isSingleFile) { TableData[][] temp = tableData; tableData = preTableData; preTableData = temp; preSelect = isSingleFile; EditorPrefs.SetBool(selectPrefKey, isSingleFile); } } GUILayout.EndHorizontal(); GUILayout.Space(15); if (isSingleFile) { GUILayout.BeginHorizontal(); { excelPath = EditorGUILayout.TextField("Excel Path", excelPath, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { excelPath = SQLite3Path.SelectExcelPath(); } } GUILayout.EndHorizontal(); if (GUILayout.Button("Preview")) { if (string.IsNullOrEmpty(excelPath)) { EditorUtility.DisplayDialog("Tips", "Please select an excel file first.", "OK"); } else { LoadExcel(Path.Combine(dataPath, excelPath)); } } } else { GUILayout.BeginHorizontal(); { excelFolder = EditorGUILayout.TextField("Excel Directory", excelFolder, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { excelFolder = SQLite3Path.SelectExcelFolder(); } } GUILayout.EndHorizontal(); if (GUILayout.Button("Preview")) { if (string.IsNullOrEmpty(excelFolder)) { EditorUtility.DisplayDialog("Tips", "Please select a directory where excel is stored.", "OK"); } else { LoadExcelDirectory(Path.Combine(dataPath, excelFolder)); } } } } EditorGUILayout.EndVertical(); if (null != tableData) { sheetLength = tableData.Length; //config = isSingleFile ? singlePathConfig : multiPathConfig; EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { dbPath = EditorGUILayout.TextField("Database Save Path", dbPath, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { dbPath = SQLite3Path.SelectDbSavePath(); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { scriptFolder = EditorGUILayout.TextField("Script Save Directory", scriptFolder, GUILayout.Width(440)); if (GUILayout.Button("Select", GUILayout.MaxWidth(88))) { scriptFolder = SQLite3Path.SelectScriptSaveFolder(); } } GUILayout.EndHorizontal(); if (!isSingleFile && sheetLength > 1) { if (GUILayout.Button("Create All")) { try { if (string.IsNullOrEmpty(dbPath)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the database.", "OK"); } else { if (string.IsNullOrEmpty(scriptFolder)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the script.", "OK"); } else { for (int i = 0; i < sheetLength; i++) { rowLength = tableData[i].Length; for (int j = 0; j < rowLength; j++) { if (tableData[i][j].IsEnable) { progressValue = 1.0f; if (tableData[i][j].IsNeedCreateScript) { progressValue = .5f; EditorUtility.DisplayProgressBar("Convert excel to C# script...", "Convert excel named: " + tableData[i][j].TableName, i * progressValue / sheetLength); ScriptWriter.Writer(string.Format("{0}{1}.cs", Path.Combine(dataPath, scriptFolder), tableData[i][j].TableName), ref tableData[i][j]); } EditorUtility.DisplayProgressBar("Convert excel to SQLite3 table...", "Convert excel named: " + tableData[i][j].TableName, i * .5f / sheetLength); SQLite3Creator.Creator(ref tableData[i][j], Path.Combine(dataPath, dbPath)); } } } EditorUtility.DisplayProgressBar("CompileCSharp Script...", "Please Waiting...", 1.5f); EditorUtility.ClearProgressBar(); EditorUtility.DisplayDialog("Tips", "Convert excel to SQLite3 table finished.", "OK"); } } } catch (Exception ex) { EditorUtility.DisplayDialog("Error", "Convert excel to SQLite3 table has an error:" + ex.Message, "OK"); } Close(); } } } EditorGUILayout.EndVertical(); scrollPos = GUILayout.BeginScrollView(scrollPos); for (int i = 0; i < sheetLength; ++i) { if (null != tableData[i]) { rowLength = tableData[i].Length; for (int j = 0; j < rowLength; ++j) { EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { tableData[i][j].TableName = EditorGUILayout.TextField("Table Name", tableData[i][j].TableName, GUILayout.Width(440)); tableData[i][j].IsEnable = EditorGUILayout.ToggleLeft("Enable", tableData[i][j].IsEnable, GUILayout.Width(88)); } GUILayout.EndHorizontal(); if (tableData[i][j].IsEnable) { GUILayout.Space(10); EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { EditorGUILayout.LabelField("Property Name", centerTittleStyle, GUILayout.Width(104)); GUILayout.Space(4); EditorGUILayout.LabelField("Property Describe", centerTittleStyle, GUILayout.Width(286)); GUILayout.Space(4); EditorGUILayout.LabelField("SQLite3 Type", centerTittleStyle, GUILayout.Width(104)); } GUILayout.EndHorizontal(); GUILayout.Space(10); columnLength = tableData[i][j].ColumnName.Length; for (int k = 0; k < columnLength; ++k) { tableData[i][j].IsColumnEnables[k] = EditorGUILayout.BeginToggleGroup( "Enable", tableData[i][j].IsColumnEnables[k]); { GUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { tableData[i][j].ColumnName[k] = EditorGUILayout.TextField(tableData[i][j].ColumnName[k], GUILayout.MaxWidth(104)); GUILayout.Space(4); tableData[i][j].ColumnDescribes[k] = EditorGUILayout.TextField(tableData[i][j].ColumnDescribes[k], GUILayout.MaxWidth(286)); GUILayout.Space(4); tableData[i][j].SQLite3Types[k] = (SQLite3ValueType) EditorGUILayout.EnumPopup(tableData[i][j].SQLite3Types[k], GUILayout.MaxWidth(104)); //tableData[i][j].SQLite3Constraints[k] = // (SQLite3Constraint) // EditorGUILayout.EnumPopup(tableData[i][j].SQLite3Constraints[k], // GUILayout.MaxWidth(100)); } GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.BeginHorizontal("box"); { SQLite3Constraint constraint = tableData[i][j].SQLite3Constraints[k]; bool isPrimaryKey = (constraint & SQLite3Constraint.PrimaryKey) != 0; bool isAutoIncrement = (constraint & SQLite3Constraint.AutoIncrement) != 0; bool isNotNull = (constraint & SQLite3Constraint.NotNull) != 0; bool isUnique = (constraint & SQLite3Constraint.Unique) != 0; EditorGUILayout.LabelField("SQLite3 Constraint:", leftTittleStyle, GUILayout.Width(114)); isPrimaryKey = EditorGUILayout.ToggleLeft("PrimaryKey", isPrimaryKey, GUILayout.Width(80)); if (tableData[i][j].SQLite3Types[k] != SQLite3ValueType.Integer) { GUI.enabled = false; isAutoIncrement = false; } isAutoIncrement = EditorGUILayout.ToggleLeft("AutoIncrement", isAutoIncrement, GUILayout.Width(104)); GUI.enabled = true; if (isPrimaryKey) { isUnique = false; isNotNull = false; GUI.enabled = false; } isNotNull = EditorGUILayout.ToggleLeft("NotNull", isNotNull, GUILayout.Width(60)); isUnique = EditorGUILayout.ToggleLeft("Unique", isUnique, GUILayout.Width(60)); GUI.enabled = true; bool isDefault = !(isPrimaryKey || isAutoIncrement || isNotNull || isUnique); isDefault = EditorGUILayout.ToggleLeft("Default", isDefault, GUILayout.Width(60)); if (isDefault) { isPrimaryKey = isAutoIncrement = isNotNull = isUnique = false; } if (isDefault) { constraint = SQLite3Constraint.Default; } else { constraint = constraint & ~SQLite3Constraint.Default; } if (isPrimaryKey) { for (int m = 0; m < columnLength; m++) { tableData[i][j].SQLite3Constraints[m] &= ~SQLite3Constraint.PrimaryKey; } constraint |= SQLite3Constraint.PrimaryKey; } else { constraint = constraint & ~SQLite3Constraint.PrimaryKey; } if (isAutoIncrement) { constraint |= SQLite3Constraint.AutoIncrement; } else { constraint &= ~SQLite3Constraint.AutoIncrement; } if (isNotNull) { constraint |= SQLite3Constraint.NotNull; } else { constraint &= ~SQLite3Constraint.NotNull; } if (isUnique) { constraint |= SQLite3Constraint.Unique; } else { constraint &= ~SQLite3Constraint.Unique; } tableData[i][j].SQLite3Constraints[k] = constraint; } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } EditorGUILayout.EndToggleGroup(); } EditorGUILayout.BeginHorizontal("box"); { tableData[i][j].IsNeedCreateScript = EditorGUILayout.ToggleLeft("Need create or update script?", tableData[i][j].IsNeedCreateScript, GUILayout.Width(258)); GUILayout.Space(10); if (GUILayout.Button("Create", GUILayout.Width(242))) { try { if (string.IsNullOrEmpty(dbPath)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the database.", "OK"); } else { if (string.IsNullOrEmpty(scriptFolder)) { EditorUtility.DisplayDialog("Tips", "Please select the storage location of the script.", "OK"); } else { if (tableData[i][j].IsNeedCreateScript) { ScriptWriter.Writer(string.Format("{0}{1}.cs", Path.Combine(dataPath, scriptFolder), tableData[i][j].TableName), ref tableData[i][j]); } SQLite3Creator.Creator(ref tableData[i][j], Path.Combine(dataPath, dbPath)); EditorUtility.DisplayDialog("Tips", "Convert excel to SQLite3 table finished.", "OK"); if (isSingleFile) { Close(); } } } } catch (Exception ex) { EditorUtility.DisplayDialog("Error", "Convert excel to SQLite3 table has an error:" + ex.Message, "OK"); } } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); } } EditorGUILayout.EndVertical(); } } } EditorGUILayout.EndScrollView(); } } EditorGUILayout.EndVertical(); }