private void LoadRecent()
        {
            var list = AppHost.Settings.Get(ControlsFieldTypeSelectorRecent, GetStorageKey(), string.Empty) as string;

            if (string.IsNullOrEmpty(list))
            {
                return;
            }

            var items = list.Split('|');

            AddSection(Rocks.Resources.FieldTypeSelector_LoadRecent_Recently_Used_Field_Types);

            foreach (var item in items)
            {
                var parts = item.Split('^');

                var name   = parts[0];
                var itemId = new ItemId(new Guid(parts[1]));

                var itemUri = new ItemUri(DatabaseUri, itemId);

                var fieldType = new FieldTypeHeader(itemUri, name, string.Empty, string.Empty, "Recent");

                AddFieldType(fieldType);
            }
        }
Ejemplo n.º 2
0
        public static void GetFieldTypes([NotNull] this DataService dataService, [NotNull] DatabaseUri databaseUri, [NotNull] GetFieldTypesCompleted callback)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(callback, nameof(callback));

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    callback(Enumerable.Empty <FieldTypeHeader>(), Enumerable.Empty <FieldValidationHeader>());
                    return;
                }

                var root = Parse(response);
                if (root == null)
                {
                    callback(Enumerable.Empty <FieldTypeHeader>(), Enumerable.Empty <FieldValidationHeader>());
                    return;
                }

                var fieldTypes = new List <FieldTypeHeader>();

                var fieldTypesElement = root.Element(@"fieldtypes");
                if (fieldTypesElement != null)
                {
                    foreach (var element in fieldTypesElement.Elements())
                    {
                        var item = new FieldTypeHeader(new ItemUri(databaseUri, new ItemId(new Guid(element.GetAttributeValue("id")))), element.GetAttributeValue("name"), element.GetAttributeValue("icon"), element.GetAttributeValue("path"), element.GetAttributeValue("section"));

                        fieldTypes.Add(item);
                    }
                }

                fieldTypes.Sort(new FieldTypeHeaderComparer());

                var validations = new List <FieldValidationHeader>();

                var validationsElement = root.Element(@"validations");
                if (validationsElement != null)
                {
                    foreach (var element in validationsElement.Elements())
                    {
                        var item = new FieldValidationHeader
                        {
                            Name    = element.GetAttributeValue("name"),
                            Section = element.GetAttributeValue("section"),
                            ItemUri = new ItemUri(databaseUri, new ItemId(new Guid(element.GetAttributeValue("id"))))
                        };

                        validations.Add(item);
                    }
                }

                callback(fieldTypes, validations);
            };

            dataService.ExecuteAsync("Templates.GetFieldTypes", c, databaseUri.DatabaseName.ToString());
        }
        private void AddFieldType([NotNull] FieldTypeHeader fieldType)
        {
            Debug.ArgumentNotNull(fieldType, nameof(fieldType));

            var item = new ListBoxItem
            {
                Tag     = fieldType,
                Content = fieldType.Name,
                Margin  = new Thickness(16, 0, 0, 0)
            };

            FieldTypes.Items.Add(item);
        }
        public void AddToRecent([NotNull] FieldTypeHeader fieldType)
        {
            Assert.ArgumentNotNull(fieldType, nameof(fieldType));

            var s       = fieldType.Name + @"^" + fieldType.ItemUri.ItemId;
            var entries = new List <string>();

            var list = AppHost.Settings.Get(ControlsFieldTypeSelectorRecent, GetStorageKey(), string.Empty) as string ?? string.Empty;

            if (!string.IsNullOrEmpty(list))
            {
                entries.AddRange(list.Split('|'));
            }

            entries.Remove(s);

            entries.Insert(0, s);

            while (entries.Count > 10)
            {
                entries.RemoveAt(10);
            }

            var result = string.Empty;

            foreach (var entry in entries)
            {
                if (!string.IsNullOrEmpty(result))
                {
                    result += @"|";
                }

                result += entry;
            }

            AppHost.Settings.Set(ControlsFieldTypeSelectorRecent, GetStorageKey(), result);
        }