Example #1
0
        public void LoadItems()
        {
            if (!NeedLoadContent)
            {
                return;
            }

            NeedLoadContent = false;

            Items.Clear();

            var client = Context.Client;

            client.Send(new ClientMessage.GetObjectContent(Context.SolutionId, Context.ProjectId, Context.FileId, Context.FileVersion, _objectDescriptor.Id));
            var content = client.Receive <ServerMessage.ObjectContent>();

            if (content.content is ContentDescriptor.Fail)
            {
                NeedLoadContent = true;
            }

            _objectDescriptor.SetContent(content.content);

            if (_objectDescriptor.IsObject && _objectDescriptor.Properties != null)
            {
                Items.AddRange(ToProperties(_objectDescriptor.Properties));
            }
            else if (_objectDescriptor.IsSeq && _objectDescriptor.Items != null && _objectDescriptor.Properties != null)
            {
                Items.AddRange(ToAstList(_objectDescriptor.Properties, _objectDescriptor.Items));
            }
            else if (_objectDescriptor.IsSeq && _objectDescriptor.Items != null)
            {
                Items.AddRange(ToItems(_objectDescriptor.Items));
            }
        }