Exemplo n.º 1
0
    private void DisplayDataFields()
    {
        filter = EditorGUILayout.TextField("Search", filter, GUILayout.ExpandWidth(true));

        GUILayout.Space(20);
        EditorGUILayout.LabelField(new GUIContent {
            text = "<b>Data : </b>"
        }, new GUIStyle {
            fontSize = 20, richText = true
        });
        GUILayout.Space(10);


        scrollView = EditorGUILayout.BeginScrollView(scrollView);
        SerializedObject   serializedObject         = new SerializedObject(this);
        SerializedProperty keyValuePairListProperty = serializedObject.FindProperty("data.keyValuePairs");

        for (int i = 0; i < keyValuePairListProperty.arraySize; i++)
        {
            var keyValuePairProp = keyValuePairListProperty.GetArrayElementAtIndex(i);
            var keyProp          = keyValuePairProp.FindPropertyRelative("key");
            var valueProp        = keyValuePairProp.FindPropertyRelative("value");
            if (filter == "" || keyProp.stringValue.StartsWith(filter))
            {
                if (EditorGUILayout.PropertyField(keyValuePairProp))
                {
                    EditorGUI.BeginChangeCheck();

                    EditorGUILayout.PropertyField(keyProp);
                    EditorGUILayout.PropertyField(valueProp, GUILayout.MinHeight(100.0f));

                    if (EditorGUI.EndChangeCheck())
                    {
                        saved = false;
                    }
                }

                LocalizationEditorUtils.DrawDivider();

                GUILayout.Space(10.0f);
            }
        }
        serializedObject.ApplyModifiedProperties();
        EditorGUILayout.EndScrollView();

        EditorGUILayout.Separator();

        if (GUILayout.Button("Add Pair"))
        {
            data.keyValuePairs.Add(new KeyValuePair());
        }

        GUILayout.Space(20.0f);

        EditorGUI.BeginDisabledGroup(saved);
        if (filePath != null && (GUILayout.Button("Save File") || (EditorGUI.actionKey && sPressed)))
        {
            LocalizationEditorUtils.SaveDataToSetPath(filePath, data);
            saved = true;
            Repaint();
        }
        EditorGUI.EndDisabledGroup();

        if (GUILayout.Button("Save File As..."))
        {
            SaveData();
        }

        if (GUILayout.Button("Sort"))
        {
            SortData();
        }
    }
Exemplo n.º 2
0
    void MergeFiles()
    {
        var firstDict  = new Dictionary <string, string>();
        var secondDict = new Dictionary <string, string>();

        EditorUtility.DisplayProgressBar("Merging data...", "Please stand by", 0);

        foreach (var pair in first.data.keyValuePairs)
        {
            if (!firstDict.ContainsKey(pair.key))
            {
                firstDict.Add(pair.key, pair.value);
            }
        }

        foreach (var pair in second.data.keyValuePairs)
        {
            if (!secondDict.ContainsKey(pair.key))
            {
                secondDict.Add(pair.key, pair.value);
            }
        }

        foreach (var key in firstDict.Keys)
        {
            if (!secondDict.ContainsKey(key))
            {
                secondDict.Add(key, firstDict[key]);
            }
        }

        EditorUtility.DisplayProgressBar("Merging data...", "Please stand by", 50);

        foreach (var key in secondDict.Keys)
        {
            if (!firstDict.ContainsKey(key))
            {
                firstDict.Add(key, secondDict[key]);
            }
        }

        EditorUtility.DisplayProgressBar("Merging data...", "Please stand by", 100);

        first.data.keyValuePairs.Clear();
        second.data.keyValuePairs.Clear();

        foreach (var key in firstDict.Keys)
        {
            var a = new KeyValuePair();
            a.key   = key;
            a.value = firstDict[key];
            first.data.keyValuePairs.Add(a);
        }

        LocalizationEditorUtils.SaveDataToSetPath(first.path, first.data);

        foreach (var key in secondDict.Keys)
        {
            var a = new KeyValuePair();
            a.key   = key;
            a.value = secondDict[key];
            second.data.keyValuePairs.Add(a);
        }

        LocalizationEditorUtils.SaveDataToSetPath(second.path, second.data);

        EditorUtility.ClearProgressBar();
        EditorUtility.DisplayDialog("Operation successful!", "Your data has been merged successfully", "OK");
    }