+/*\r
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+\r
+using System;\r
+using Tizen.NUI;\r
+\r
+namespace ControlDashboard\r
+{\r
+ class Example : NUIApplication\r
+ {\r
+ // This is simple structure to contain Control name and implement state at once\r
+ // name : control name\r
+ // isImplemented : the state which the control is implemented in public or not\r
+ private struct Item\r
+ {\r
+ public String name;\r
+ public bool isImplemented;\r
+\r
+ public Item(String name, bool isImplemented)\r
+ {\r
+ this.name = name;\r
+ this.isImplemented = isImplemented;\r
+ }\r
+ }\r
+\r
+ private TableView _contentContainer;\r
+ private Timer _timer;\r
+ private Stage _stage;\r
+ private Popup _popup;\r
+ private ProgressBar _progressBar;\r
+ private const string _resPath = "/home/owner/apps_rw/NUISample2.Tizen/res";\r
+\r
+ // List of items\r
+ private Item[] mViewList = {\r
+ new Item("PushButton", true), new Item("DropDown", false), new Item("Toggle", true),\r
+ new Item("InputField", false), new Item("AnimateGif", false), new Item("Loading", false),\r
+ new Item("ProgressBar", true), new Item("CheckBox", false), new Item("RadioButton", true),\r
+ new Item("Tooltip", true), new Item("Popup", true), new Item("Toast", true),\r
+ new Item("ItemView", false), new Item("CheckBox", true)\r
+ };\r
+\r
+ public Example() : base()\r
+ {\r
+ }\r
+\r
+ public Example(string stylesheet) : base(stylesheet)\r
+ {\r
+ }\r
+\r
+ public Example(string stylesheet, NUIApplication.WindowMode windowMode) : base(stylesheet, windowMode)\r
+ {\r
+ }\r
+\r
+ protected override void OnCreate()\r
+ {\r
+ base.OnCreate();\r
+ Initialize();\r
+ }\r
+\r
+ protected override void OnTerminate()\r
+ {\r
+ base.OnTerminate();\r
+ }\r
+\r
+ public void Initialize()\r
+ {\r
+ Console.WriteLine("Customized Application Initialize event handler");\r
+ _stage = Stage.Instance;\r
+ _stage.BackgroundColor = Color.White;\r
+ _stage.Key += _stage_Key;\r
+\r
+ // Top label\r
+ TextLabel topLabel = new TextLabel();\r
+ topLabel.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ topLabel.HeightResizePolicy = ResizePolicyType.SizeRelativeToParent;\r
+ topLabel.AnchorPoint = AnchorPoint.TopCenter;\r
+ topLabel.ParentOrigin = ParentOrigin.TopCenter;\r
+ topLabel.SetSizeModeFactor(new Vector3(0.0f, 0.1f, 0.0f));\r
+ topLabel.BackgroundColor = new Color(43.0f / 255.0f, 145.0f / 255.0f, 175.0f / 255.0f, 1.0f);\r
+ topLabel.TextColor = Color.White;\r
+ topLabel.Text = " DALi Views";\r
+ topLabel.HorizontalAlignment = "BEGIN";\r
+ topLabel.VerticalAlignment = "CENTER";\r
+ topLabel.PointSize = 42.0f;\r
+ _stage.GetDefaultLayer().Add(topLabel);\r
+ //StyleManager.Get().ApplyStyle(topLabel, _resPath + "/json/control-dashboard-theme.json", "TextFieldFontSize4");\r
+ topLabel.SetStyleName("TextFieldFontSize4");\r
+\r
+ // Grid container to contain items. Use tableView because FlexContainer support focus navigation just two direction ( up/down or left/right )\r
+ _contentContainer = new TableView(6, 5);\r
+ _contentContainer.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ _contentContainer.HeightResizePolicy = ResizePolicyType.SizeRelativeToParent;\r
+ _contentContainer.SetSizeModeFactor(new Vector3(0.0f, 0.9f, 0.0f));\r
+ _contentContainer.AnchorPoint = AnchorPoint.BottomCenter;\r
+ _contentContainer.ParentOrigin = ParentOrigin.BottomCenter;\r
+ _contentContainer.SetRelativeHeight(0, 0.07f);\r
+ _contentContainer.SetRelativeHeight(1, 0.26f);\r
+ _contentContainer.SetRelativeHeight(2, 0.07f);\r
+ _contentContainer.SetRelativeHeight(3, 0.26f);\r
+ _contentContainer.SetRelativeHeight(4, 0.07f);\r
+ _contentContainer.SetRelativeHeight(5, 0.26f);\r
+ _contentContainer.Focusable = (true);\r
+ _stage.GetDefaultLayer().Add(_contentContainer);\r
+\r
+ CreateContent();\r
+\r
+ FocusManager.Instance.PreFocusChange += OnPreFocusChange;\r
+ }\r
+\r
+ private void _stage_Key(object sender, Stage.KeyEventArgs e)\r
+ {\r
+ if (e.Key.KeyPressedName == "XF86Back")\r
+ {\r
+ OnTerminate();\r
+ }\r
+ }\r
+\r
+ // Callback for KeyboardFocusManager\r
+ private View OnPreFocusChange(object source, FocusManager.PreFocusChangeEventArgs e)\r
+ {\r
+ if (!e.ProposedView && !e.CurrentView)\r
+ {\r
+ e.ProposedView = View.DownCast(_contentContainer.GetChildAt(1));\r
+ }\r
+ return e.ProposedView;\r
+ }\r
+\r
+ private void CreateContent()\r
+ {\r
+ for (int i = 0; i < mViewList.Length; i++)\r
+ {\r
+ CreateItem(mViewList[i], i);\r
+ }\r
+ }\r
+\r
+ private void CreateItem(Item item, int idx)\r
+ {\r
+ // Make label for item\r
+ TextLabel itemLabel = new TextLabel(" " + item.name);\r
+ itemLabel.Size = new Vector3(_stage.Size.Width * 0.2f, _stage.Size.Height * 0.05f, 0.0f);\r
+ itemLabel.HorizontalAlignment = "BEGIN";\r
+ itemLabel.VerticalAlignment = "BOTTOM";\r
+ //itemLabel.PointSize = 18.0f;\r
+ _contentContainer.AddChild(itemLabel, new TableView.CellPosition(((uint)idx / 5) * 2, (uint)idx % 5));\r
+\r
+ // If item is implemented in public, attach it on stage\r
+ if (item.isImplemented)\r
+ {\r
+ if (item.name.CompareTo("PushButton") == 0)\r
+ {\r
+ PushButton pushButton = new PushButton();\r
+ pushButton.LabelText = "Push Button";\r
+ pushButton.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ pushButton.HeightResizePolicy = ResizePolicyType.FillToParent;\r
+ pushButton.UnselectedColor = new Vector4(1.0f, 0.0f, 0.0f, 1.0f);\r
+ pushButton.SelectedColor = new Vector4(0.0f, 1.0f, 0.0f, 1.0f);\r
+ pushButton.Clicked += (obj, e) =>\r
+ {\r
+ Button sender = obj as Button;\r
+ sender.LabelText = "Click Me";\r
+ sender.UnselectedColor = new Vector4(0.0f, 0.0f, 1.0f, 1.0f);\r
+ return true;\r
+ };\r
+\r
+ _contentContainer.AddChild(pushButton, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("DropDown") == 0)\r
+ {\r
+\r
+ }\r
+ if (item.name.CompareTo("Toggle") == 0)\r
+ {\r
+ ToggleButton toggleButton = new ToggleButton();\r
+ PropertyArray array = new PropertyArray();\r
+ array.Add(new PropertyValue(_resPath + "/images/star-highlight.png"));\r
+ array.Add(new PropertyValue(_resPath + "/images/star-mod.png"));\r
+ array.Add(new PropertyValue(_resPath + "/images/star-dim.png"));\r
+ toggleButton.StateVisuals = array;\r
+\r
+ PropertyArray tooltips = new PropertyArray();\r
+ tooltips.Add(new PropertyValue("State A"));\r
+ tooltips.Add(new PropertyValue("State B"));\r
+ tooltips.Add(new PropertyValue("State C"));\r
+ toggleButton.Tooltips = tooltips;\r
+\r
+ toggleButton.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ toggleButton.HeightResizePolicy = ResizePolicyType.FillToParent;\r
+ toggleButton.Clicked += (obj, e) =>\r
+ {\r
+ Console.WriteLine("Toggle button state changed.");\r
+ return true;\r
+ };\r
+\r
+ _contentContainer.AddChild(toggleButton, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("InputField") == 0)\r
+ {\r
+\r
+ }\r
+ if (item.name.CompareTo("AnimateGif") == 0)\r
+ {\r
+\r
+ }\r
+ if (item.name.CompareTo("Loading") == 0)\r
+ {\r
+\r
+ }\r
+ if (item.name.CompareTo("ProgressBar") == 0)\r
+ {\r
+ _progressBar = new ProgressBar();\r
+ _progressBar.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ _progressBar.HeightResizePolicy = ResizePolicyType.Fixed;\r
+ _progressBar.Size2D = new Size2D(0, 100);\r
+\r
+ _progressBar.ValueChanged += OnProgressBarValueChanged;\r
+\r
+ _timer = new Timer(100);\r
+ _timer.Tick += (obj, e) =>\r
+ {\r
+ float progress = (float)Math.Round(_progressBar.ProgressValue, 2);\r
+\r
+ if (progress == 1.0f)\r
+ {\r
+ _progressBar.ProgressValue = 0.0f;\r
+ _progressBar.SecondaryProgressValue = 0.01f;\r
+ }\r
+ else\r
+ {\r
+ _progressBar.ProgressValue = progress + 0.01f;\r
+ _progressBar.SecondaryProgressValue = progress + 0.21f;\r
+ }\r
+ return true;\r
+ };\r
+ _timer.Start();\r
+\r
+ _contentContainer.AddChild(_progressBar, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("ScrollBar") == 0)\r
+ {\r
+\r
+ }\r
+ if (item.name.CompareTo("CheckBox") == 0)\r
+ {\r
+ CheckBoxButton checkBoxButton = new CheckBoxButton();\r
+ checkBoxButton.LabelText = "Yes";\r
+\r
+ _contentContainer.AddChild(checkBoxButton, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("RadioButton") == 0)\r
+ {\r
+ TableView tableView = new TableView(2, 1);\r
+ tableView.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ tableView.HeightResizePolicy = ResizePolicyType.FillToParent;\r
+\r
+ RadioButton rButton = new RadioButton();\r
+ rButton.LabelText = "Yes";\r
+ rButton.Selected = true;\r
+ tableView.AddChild(rButton, new TableView.CellPosition(0, 0));\r
+\r
+ rButton = new RadioButton();\r
+ rButton.LabelText = "No";\r
+\r
+ tableView.AddChild(rButton, new TableView.CellPosition(1, 0));\r
+\r
+ _contentContainer.AddChild(tableView, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("Tooltip") == 0)\r
+ {\r
+ TableView tableView = new TableView(2, 1);\r
+ tableView.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ tableView.HeightResizePolicy = ResizePolicyType.FillToParent;\r
+\r
+ // Create two push buttons and add them to a table view\r
+ PushButton buttonWithSimpleTooltip = new PushButton();\r
+ buttonWithSimpleTooltip.LabelText = "Tooltip with text only";\r
+ buttonWithSimpleTooltip.UnselectedColor = new Vector4(0.5f, 0.5f, 0.7f, 1.0f);\r
+ buttonWithSimpleTooltip.SelectedColor = new Vector4(0.7f, 0.5f, 0.7f, 1.0f);\r
+ buttonWithSimpleTooltip.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ tableView.AddChild(buttonWithSimpleTooltip, new TableView.CellPosition(0, 0));\r
+\r
+ PushButton buttonWithIconTooltip = new PushButton();\r
+ buttonWithIconTooltip.LabelText = "Tooltip with Text and Icon";\r
+ buttonWithIconTooltip.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ buttonWithIconTooltip.UnselectedColor = new Vector4(0.5f, 0.5f, 0.7f, 1.0f);\r
+ buttonWithIconTooltip.SelectedColor = new Vector4(0.7f, 0.5f, 0.7f, 1.0f);\r
+ tableView.AddChild(buttonWithIconTooltip, new TableView.CellPosition(1, 0));\r
+\r
+ // Add a simple text only tooltip to the first push button\r
+ buttonWithSimpleTooltip.TooltipText = "Simple Tooltip";\r
+\r
+ // Create a property map for a tooltip with one icon and one text\r
+ PropertyArray iconTooltipContent = new PropertyArray();\r
+\r
+ PropertyMap iconVisual = new PropertyMap();\r
+ iconVisual.Add(Tizen.NUI.Constants.Visual.Property.Type, new PropertyValue((int)Tizen.NUI.Constants.Visual.Type.Image))\r
+ .Add(Tizen.NUI.Constants.ImageVisualProperty.URL, new PropertyValue(_resPath + "/images/star-highlight.png"));\r
+ iconTooltipContent.Add(new PropertyValue(iconVisual));\r
+\r
+ PropertyMap textVisual = new PropertyMap();\r
+ textVisual.Add(Tizen.NUI.Constants.Visual.Property.Type, new PropertyValue((int)Tizen.NUI.Constants.Visual.Type.Text))\r
+ .Add(Tizen.NUI.Constants.TextVisualProperty.Text, new PropertyValue("Tooltip with Icon"));\r
+ iconTooltipContent.Add(new PropertyValue(textVisual));\r
+\r
+ PropertyMap iconTooltip = new PropertyMap();\r
+ iconTooltip.Add(Tizen.NUI.Constants.Tooltip.Property.Content, new PropertyValue(iconTooltipContent))\r
+ .Add(Tizen.NUI.Constants.Tooltip.Property.Tail, new PropertyValue(true));\r
+\r
+ // Add the tooltip with icon and text to the second push button\r
+ buttonWithIconTooltip.Tooltip = iconTooltip;\r
+\r
+ _contentContainer.AddChild(tableView, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("Popup") == 0)\r
+ {\r
+ PushButton button = new PushButton();\r
+ button.LabelText = "Popup";\r
+ button.ParentOrigin = ParentOrigin.Center;\r
+ button.AnchorPoint = AnchorPoint.Center;\r
+ button.MaximumSize = new Size2D(150, 100);\r
+ _popup = CreatePopup();\r
+ _popup.SetTitle(CreateTitle("Popup"));\r
+\r
+ TextLabel text = new TextLabel("This will erase the file permanently. Are you sure?");\r
+ text.BackgroundColor = Color.White;\r
+ text.MultiLine = true;\r
+ text.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ text.HeightResizePolicy = ResizePolicyType.DimensionDependency;\r
+ text.SetPadding(new PaddingType(10.0f, 10.0f, 20.0f, 0.0f));\r
+ _popup.SetContent(text);\r
+ _popup.Focusable = (true);\r
+ _popup.SetDisplayState(Popup.DisplayStateType.Hidden);\r
+\r
+ button.Clicked += (obj, ee) =>\r
+ {\r
+ _stage.GetDefaultLayer().Add(_popup);\r
+ _popup.SetDisplayState(Popup.DisplayStateType.Shown);\r
+ FocusManager.Instance.SetCurrentFocusView(View.DownCast((_popup.FindChildByName("Footer")).FindChildByName("OKButton")));\r
+ return true;\r
+ };\r
+ _contentContainer.AddChild(button, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("Toast") == 0)\r
+ {\r
+ PushButton button = new PushButton();\r
+ button.LabelText = "Toast";\r
+ button.ParentOrigin = ParentOrigin.Center;\r
+ button.AnchorPoint = AnchorPoint.Center;\r
+ button.Clicked += (obj, ee) =>\r
+ {\r
+ TypeInfo typeInfo = new TypeInfo(TypeRegistry.Get().GetTypeInfo("PopupToast"));\r
+ if (typeInfo)\r
+ {\r
+ BaseHandle baseHandle = typeInfo.CreateInstance();\r
+ if (baseHandle)\r
+ {\r
+ Popup toast = Popup.DownCast(baseHandle);\r
+ TextLabel text = new TextLabel("This is a Toast.\nIt will auto-hide itself");\r
+ text.TextColor = Color.White;\r
+ text.MultiLine = true;\r
+ text.HorizontalAlignment = "center";\r
+ toast.SetTitle(text);\r
+ _stage.GetDefaultLayer().Add(toast);\r
+ toast.SetDisplayState(Popup.DisplayStateType.Shown);\r
+ }\r
+ }\r
+ return true;\r
+ };\r
+ _contentContainer.AddChild(button, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ if (item.name.CompareTo("ItemView") == 0)\r
+ {\r
+\r
+ }\r
+ }\r
+ else\r
+ {\r
+ ImageView notSupportView = new ImageView(_resPath + "/images/not_yet_sign.png");\r
+ notSupportView.Size = new Vector3(_stage.Size.Width * 0.2f, _stage.Size.Height * 0.25f, 0.0f);\r
+ notSupportView.Focusable = (true);\r
+ _contentContainer.AddChild(notSupportView, new TableView.CellPosition(((uint)idx / 5) * 2 + 1, (uint)idx % 5));\r
+ }\r
+ }\r
+ Popup CreatePopup()\r
+ {\r
+ Popup confirmationPopup = new Popup();\r
+\r
+ Actor footer = new Actor();\r
+ footer.Name = ("Footer");\r
+ footer.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ footer.HeightResizePolicy = ResizePolicyType.Fixed;\r
+ footer.Size = new Size(0.0f, 80.0f, 0.0f);\r
+ footer.ParentOrigin = ParentOrigin.Center;\r
+ footer.AnchorPoint = AnchorPoint.Center;\r
+\r
+ PushButton okButton = CreateOKButton();\r
+ okButton.ParentOrigin = ParentOrigin.Center;\r
+ okButton.AnchorPoint = AnchorPoint.Center;\r
+ okButton.WidthResizePolicy = ResizePolicyType.SizeFixedOffsetFromParent;\r
+ okButton.HeightResizePolicy = ResizePolicyType.SizeFixedOffsetFromParent;\r
+ okButton.SetSizeModeFactor(new Vector3(-20.0f, -20.0f, 0.0f));\r
+\r
+ PushButton cancelButton = CreateCancelButton();\r
+ cancelButton.ParentOrigin = ParentOrigin.Center;\r
+ cancelButton.AnchorPoint = AnchorPoint.Center;\r
+ cancelButton.WidthResizePolicy = ResizePolicyType.SizeFixedOffsetFromParent;\r
+ cancelButton.HeightResizePolicy = ResizePolicyType.SizeFixedOffsetFromParent;\r
+ cancelButton.SetSizeModeFactor(new Vector3(-20.0f, -20.0f, 0.0f));\r
+\r
+ TableView controlLayout = new TableView(1, 2);\r
+ controlLayout.ParentOrigin = ParentOrigin.Center;\r
+ controlLayout.AnchorPoint = AnchorPoint.Center;\r
+ controlLayout.WidthResizePolicy = ResizePolicyType.FillToParent;\r
+ controlLayout.HeightResizePolicy = ResizePolicyType.FillToParent;\r
+ controlLayout.SetCellPadding(new Size2D(10, 10));\r
+ controlLayout.SetRelativeWidth(0, 0.5f);\r
+ controlLayout.SetRelativeWidth(1, 0.5f);\r
+ controlLayout.SetCellAlignment(new TableView.CellPosition(0, 0), HorizontalAlignmentType.Center, VerticalAlignmentType.Center);\r
+ controlLayout.SetCellAlignment(new TableView.CellPosition(0, 1), HorizontalAlignmentType.Center, VerticalAlignmentType.Center);\r
+ controlLayout.AddChild(okButton, new TableView.CellPosition(0, 0));\r
+ controlLayout.AddChild(cancelButton, new TableView.CellPosition(0, 1));\r
+\r
+ footer.Add(controlLayout);\r
+\r
+ confirmationPopup.SetFooter(footer);\r
+ return confirmationPopup;\r
+ }\r
+ Actor CreateTitle(string title)\r
+ {\r
+ TextLabel titleActor = new TextLabel(title);\r
+ titleActor.TextColor = Color.White;\r
+ titleActor.MultiLine = true;\r
+ titleActor.HorizontalAlignment = "center";\r
+ return titleActor;\r
+ }\r
+\r
+ PushButton CreateOKButton()\r
+ {\r
+ PushButton okayButton = new PushButton();\r
+ okayButton.Name = ("OKButton");\r
+ okayButton.LabelText = "OK";\r
+ okayButton.Focusable = (true);\r
+ okayButton.Clicked += (obj, ee) =>\r
+ {\r
+ _popup.SetDisplayState(Popup.DisplayStateType.Hidden);\r
+ return true;\r
+ };\r
+ return okayButton;\r
+ }\r
+ PushButton CreateCancelButton()\r
+ {\r
+ PushButton cancelButton = new PushButton();\r
+ cancelButton.LabelText = "Cancel";\r
+ cancelButton.Focusable = (true);\r
+ cancelButton.Clicked += (obj, ee) =>\r
+ {\r
+ _popup.SetDisplayState(Popup.DisplayStateType.Hidden);\r
+ return true;\r
+ };\r
+ return cancelButton;\r
+ }\r
+\r
+ void OnProgressBarValueChanged(object source, ProgressBar.ValueChangedEventArgs e)\r
+ {\r
+ PropertyMap labelVisual = new PropertyMap();\r
+ labelVisual.Add(Tizen.NUI.Constants.Visual.Property.Type, new PropertyValue((int)Tizen.NUI.Constants.Visual.Type.Text))\r
+ .Add(Tizen.NUI.Constants.TextVisualProperty.Text, new PropertyValue(Math.Round(e.ProgressBar.ProgressValue, 2) + " / " + Math.Round(e.ProgressBar.SecondaryProgressValue, 2)))\r
+ .Add(Tizen.NUI.Constants.TextVisualProperty.PointSize, new PropertyValue(10.0f));\r
+ e.ProgressBar.LabelVisual = labelVisual;\r
+ return;\r
+ }\r
+\r
+\r
+ /// <summary>\r
+ /// The main entry point for the application.\r
+ /// </summary>\r
+\r
+ [STAThread]\r
+ static void Main(string[] args)\r
+ {\r
+ Tizen.Log.Debug("NUI", "control-dashboard app Main()");\r
+\r
+ Example example = new Example("/home/owner/apps_rw/NUISample2.Tizen/res/json/control-dashboard-theme.json");\r
+ example.Run(args);\r
+ }\r
+ }\r
+}\r