private void DrawFieldItem(State state, FieldItem fieldItem, Action repaintAction)
        {
            EditorGUI.indentLevel++;

            Undo.RecordObject(fieldItem, "Edit group connection title");
            EditorGUILayout.BeginHorizontal();

            fieldItem.title = SpellCheckHintsContent.DrawTextField(
                $"{fieldItem.GetInstanceID()}_{nameof(fieldItem.title)}",
                "Title",
                fieldItem.title,
                repaintAction,
                n => { fieldItem.title = n; });

            //fieldItem.title = EditorGUILayout.TextField("Title:", fieldItem.title);
            if (Buttons.Delete())
            {
                Undo.DestroyObjectImmediate(fieldItem);
            }
            EditorGUILayout.EndHorizontal();

            RenderPositionVertexes(state, fieldItem);
            EditorGUILayout.BeginHorizontal();
            GUILayout.Space(EditorGUI.indentLevel * 15);
            fieldItem.attachmentsTabIndex = GUILayout.Toolbar(fieldItem.attachmentsTabIndex, new string[] {
                "Images",
                "Video",
                "Text",
                "Audio"
            });
            EditorGUILayout.EndHorizontal();
            var serializedObject = new SerializedObject(fieldItem);

            switch (fieldItem.attachmentsTabIndex)
            {
            case 0:
                var imagesProperty = serializedObject.FindProperty(nameof(fieldItem.images));
                EditorGUILayout.PropertyField(imagesProperty);
                break;

            case 1:
                var videosProperty = serializedObject.FindProperty(nameof(fieldItem.videos));
                EditorGUILayout.PropertyField(videosProperty, new GUIContent("ONLY FIRST VIDEO WILL BE USED! (now)"));
                break;

            case 2:
                var textProperty = serializedObject.FindProperty(nameof(fieldItem.text));
                EditorGUILayout.PropertyField(textProperty);
                break;

            case 3:
                var audiosProperty = serializedObject.FindProperty(nameof(fieldItem.audios));
                EditorGUILayout.PropertyField(audiosProperty, new GUIContent("ONLY FIRST AUDIO WILL BE USED! (now)"));
                break;

            default:
                break;
            }
            serializedObject.ApplyModifiedProperties();
            EditorGUI.indentLevel--;
        }
 public static string GetExportedId(this FieldItem fieldItem)
 {
     return("field_item_" + fieldItem.GetInstanceID());
 }