public override void OnInspectorGUI()
        {
            //base.OnInspectorGUI();
            serializedObject.Update();

            EditorProfileData data = target as EditorProfileData;

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Editor Profile", EditorStyles.largeLabel);
            GUILayout.FlexibleSpace();
            if (GUILayout.Button(new GUIContent("Activate", "Use this profile on the current machine. Your selection is saved in Editor Preferences.")))
            {
                data.activate();
            }
            //if (GUILayout.Button(new GUIContent("Test", ",,,"))) Debug.Log("/"+EditorProfileData.active);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.HelpBox("This file stores various data values inside the project, but supports different files to be used on different machines.", MessageType.None);
            EditorGUILayout.EndHorizontal();

            /* //No need for name field as the name is shown in the header anyways:
             * GUI.enabled = false;
             * EditorGUILayout.TextField(new GUIContent("Name:", "Rename the file to change the name."), data.name);
             * GUI.enabled = true;
             */

            EditorGUILayout.PrefixLabel(new GUIContent("Notes:", "Type any text description. It has no meaning other than annotating the file for human readers."));
            data.notes = EditorGUILayout.TextArea(data.notes);

            bool showInspector = EditorPrefs.GetBool("GDP-EditorProfiles-inspect", false);

            /* following switch moved into via gear-menu
             * showInspector = EditorGUILayout.ToggleLeft(new GUIContent("Inspect raw data","when set you can see raw data saved in the file. Only recommended for debugging."), showInspector);
             * if (GUI.changed)
             * {
             *  EditorPrefs.SetBool("GDP-EditorProfiles-inspect", showInspector);
             * }*/
            if (showInspector)
            {
                EditorGUILayout.LabelField("TODO: show raw"); //TODO(RB): implement raw data listing
            }
            else
            {
                drawSubEditors();
            }
        }
        protected void drawSubEditors()
        {
            EditorProfileData data = target as EditorProfileData;

            if (data == null)
            {
                return;
            }
            else if (onDrawSubEditor != null)
            {
                onDrawSubEditor(data);                               //call all listeners registered to onDrawSubEditor, if any.
            }
            else
            {
                EditorGUILayout.HelpBox("No data editors available.", MessageType.None);
            }
        }