Example #1
0
        void RefreshKeyStore()
        {
            TreeIter iter;
            var      keys = Scheme.Keys.Cast <PListScheme.SchemaItem> ();

            if (treeview.Selection.GetSelected(out iter))
            {
                var currentObj = (PObject)treeStore.GetValue(iter, 1);
                if (treeStore.IterParent(out iter, iter))
                {
                    var obj = (PObject)treeStore.GetValue(iter, 1);
                    keys = PListScheme.AvailableKeys(obj, CurrentTree);
                }
            }

            keyStore.Clear();
            if (keys != null)
            {
                var sortedKeys = new List <PListScheme.SchemaItem> (keys);
                if (ShowDescriptions)
                {
                    sortedKeys.Sort((x, y) => StringComparer.CurrentCulture.Compare(x.Description, y.Description));
                }
                else
                {
                    sortedKeys.Sort((x, y) => StringComparer.CurrentCulture.Compare(x.Identifier, y.Identifier));
                }

                foreach (var key in sortedKeys)
                {
                    keyStore.AppendValues(ShowDescriptions ? key.Description : key.Identifier, key);
                }
            }
        }
Example #2
0
        void AddNewArrayElement(PArray array)
        {
            var values = PListScheme.AvailableKeys(array, CurrentTree);

            if (values == null)
            {
                array.Add(PObject.Create(DefaultNewObjectType));
            }
            else if (values.Any())
            {
                array.Add(values.First().Create());
            }
        }
Example #3
0
        void AddNewDictionaryElement(PDictionary dict)
        {
            var values = PListScheme.AvailableKeys(dict, CurrentTree);

            if (values == null)
            {
                string name = "newProperty";
                while (dict.ContainsKey(name))
                {
                    name += "_";
                }
                dict.Add(name, PObject.Create(DefaultNewObjectType));
            }
            else if (values.Any())
            {
                var value = values.FirstOrDefault();
                dict.Add(value.Identifier, value.Create());
            }
        }