Ejemplo n.º 1
0
        private JObject GetPictureFolder(UiElementContainerSpec container, PictureFolderSpec pictureFolderSpec)
        {
            var item = new JObject();

            var subItems = new JArray();

            foreach (var pic in pictureFolderSpec.Items)
            {
                var pictureItem = pic as PictureSourceSpec;
                if (pictureItem == null)
                {
                    continue;
                }

                try
                {
                    System.Diagnostics.Debug.WriteLine("Trying to save '" + pictureItem.Name);
                    string name    = SaveImage(pictureItem.Bitmap.Bitmap);
                    var    subItem = new JObject();
                    subItem.Add("name", pictureItem.Name);
                    subItem.Add("file", name);
                    subItems.Add(subItem);
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine(e.ToString());
                }
            }
            item.Add("items", subItems);

            return(item);
        }
            private void ProcessGroup(UiElementContainerSpec container, UiElementContainerSpec containerToProcess = null)
            {
                if (containerToProcess == null)
                {
                    containerToProcess = container;
                }

                foreach (var elementSpec in containerToProcess.Items)
                {
                    ProcessElement(container, elementSpec);
                }
            }
Ejemplo n.º 3
0
        private JObject GetElement(UiElementContainerSpec container, UiElementSpec elementSpec)
        {
            JObject item = null;

            var pcs = elementSpec as ParameterControlSpec;

            if (pcs != null)
            {
                item = GetParameter(container, pcs);
            }
            else if (elementSpec is PictureControlSpec)
            {
                item = GetPicture(container, (PictureControlSpec)elementSpec);
            }
            else
            {
                var subContainer = elementSpec as UiElementContainerSpec;
                if (subContainer != null)
                {
                    var group = subContainer as ControlSpecGroupBase;
                    if (group != null)
                    {
                        item = GetGroupItems(group, null);
                    }
                    else if (subContainer is ControlRowSpec)
                    {
                        item = GetGroupItems(container, subContainer);
                    }
                    else
                    {
                        var pictureFolderSpec = subContainer as PictureFolderSpec;
                        if (pictureFolderSpec != null)
                        {
                            item = GetPictureFolder(container, pictureFolderSpec);
                        }
                    }
                }
            }

            if (item == null)
            {
                item = new JObject();
            }

            item.Add("name", elementSpec.Name);
            item.Add("tooltip", elementSpec.ToolTip);
            item.Add("displayName", elementSpec.DisplayName);
            item.Add("type", elementSpec.GetType().Name);

            return(item);
        }
Ejemplo n.º 4
0
        private JObject GetPicture(UiElementContainerSpec container, PictureControlSpec pictureSpec)
        {
            var item = new JObject();

            item.Add("pictureParameterName", pictureSpec.PictureParameterName);

            try
            {
                System.Diagnostics.Debug.WriteLine("Trying to save '" + pictureSpec.Name);
                string name = SaveImage(pictureSpec.Image.Bitmap);
                item.Add("file", name);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.ToString());
            }

            return(item);
        }
            private void ProcessElement(UiElementContainerSpec container, UiElementSpec elementSpec)
            {
                switch (elementSpec)
                {
                case ParameterControlSpec parameterControlSpec:
                    ProcessParameter(parameterControlSpec);
                    break;

                case UiElementContainerSpec subContainer:
                    switch (subContainer)
                    {
                    case ControlSpecGroupBase controlGroup:
                        ProcessGroup(controlGroup);
                        break;

                    case ControlRowSpec _:
                        ProcessGroup(container, subContainer);
                        break;
                    }
                    break;
                }
            }
Ejemplo n.º 6
0
        private JObject GetParameter(UiElementContainerSpec container, ParameterControlSpec pcs)
        {
            var item = new JObject();

            item.Add("alwaysReadOnly", pcs.AlwaysReadOnly);
            item.Add("readOnly", pcs.ReadOnly);
            item.Add("enablingParameterName", pcs.EnablingParameterName);
            item.Add("parameterName", pcs.ParameterName);

            NumericParameterControlSpec numeric = pcs as NumericParameterControlSpec;

            if (numeric != null)
            {
                if (numeric.EditControlType == ControlType.TrackBar)
                {
                    item.Add("minimumValue", numeric.TrackBarProperties.MinimumValue);
                    item.Add("maximumValue", numeric.TrackBarProperties.MaximumValue);
                }
                item.Add("editControlType", numeric.EditControlType.ToString());
            }

            return(item);
        }
Ejemplo n.º 7
0
        private JObject GetGroupItems(UiElementContainerSpec container, UiElementContainerSpec containerToProcess = null)
        {
            JObject item = new JObject();

            if (containerToProcess == null)
            {
                containerToProcess = container;
            }

            var subItems = new JArray();

            foreach (var elementSpec in containerToProcess.Items)
            {
                var subItem = GetElement(container, elementSpec);
                subItems.Add(subItem);
            }

            if (subItems.Count() > 0)
            {
                item.Add("items", subItems);
            }

            return(item);
        }