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); } }
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); }
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; } }
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); }
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); }