public static IList ToJSON(string[] keyNames, KeyProvider.Metadata[] metas) { IList json = new ArrayList(); for (int i = 0; i < keyNames.Length; i++) { json.AddItem(ToJSON(keyNames[i], metas[i])); } return(json); }
public static IList ToJSON(IList <KeyProvider.KeyVersion> keyVersions) { IList json = new ArrayList(); if (keyVersions != null) { foreach (KeyProvider.KeyVersion version in keyVersions) { json.AddItem(ToJSON(version)); } } return(json); }
override protected void CreateChildren() { base.CreateChildren(); //Scroller scroller = new Scroller // { // SkinClass = typeof(ScrollerSkin2), // Left = 0, // Right = 0, // Top = 0, // Bottom = 0 // }; ////scroller.SetStyle("horizontalScrollPolicy", ScrollPolicy.Off); ////scroller.SetStyle("verticalScrollPolicy", ScrollPolicy.Off); //AddChild(scroller); //Group viewport = new Group // { // Layout = new VerticalLayout // { // HorizontalAlign = HorizontalAlign.Left, // PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, // Gap = 10 // } // }; //scroller.Viewport = viewport; #region Controls HGroup hbox = new HGroup { VerticalAlign = VerticalAlign.Middle, PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 10 }; hbox.SetStyle("showBackground", true); hbox.SetStyle("backgroundColor", ColorMixer.FromHex(0x004CFF).ToColor()); /*viewport.*/ AddChild(hbox); Button button = new Button { Text = "Increase width", SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/shape_square_add") }; button.Click += delegate { button.Width += 10; _dataProvider.AddItem("miki " + button.Width); }; hbox.AddChild(button); Button btnWindow = new Button { Text = "New window", FocusEnabled = false, SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/comment") }; btnWindow.Click += delegate { //_container.RemoveAllChildren(); //for (int i = _container.NumberOfChildren - 1; i >= 0; i--) //{ // _container.RemoveContentChildAt(i); //} //_container.RemoveAllContentChildren(); //_count = 0; _count++; var window = new MyWindow { Title = "The Window " + _count, Id = "window_" + _count, SkinClass = typeof(WindowSkin2), Icon = ImageLoader.Instance.Load("Icons/balloon_32"), Width = 400, Height = 600 }; //System.Random rnd = new System.Random(); //if (rnd.Next(2) > 0) window.Plugins.Add(new Resizable { ShowOverlay = false }); window.AddEventListener(CloseEvent.CLOSE, delegate { PopupManager.Instance.RemovePopup(window); }); #region Cannot use plugin! // NOTE: We cannot use the plugin having a DragHandle because the placehoder group is being switched live // we just have to use the MoveArea skin part and do the dragging thing from inside the Dialog //var draggable = new Draggable // { // DragHandle = b.HeaderGroup // }; //b.Plugins.Add(draggable); #endregion PopupManager.Instance.AddPopup(window, false); PopupManager.Instance.CenterPopUp(window); }; hbox.AddChild(btnWindow); #endregion hbox = new HGroup { PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 10 }; //hbox.SetStyle("showBackground", true); //hbox.SetStyle("backgroundColor", RgbColor.FromHex(0x004CFF).ToColor()); /*viewport.*/ AddChild(hbox); #region Data controls List <object> source = new List <object> { "Failure", "Teaches", "Success", "One", "Two", "Three", "Four", "Five", "Six" }; _dataProvider = new ArrayList(source); var factory = new ItemRendererFactory <DefaultItemRenderer>(); //DataGroup dataGroup = new DataGroup // { // Layout = new VerticalLayout(), // DataProvider = _dataProvider, // //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), // ItemRendererFunction = delegate(object item) // { // return factory; // } // }; //hbox.AddChild(dataGroup); //dataGroup = new DataGroup // { // Layout = new TileLayout { RequestedColumnCount = 4 }, // //Width = 200, Height = 200, // DataProvider = _dataProvider, // //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), // ItemRendererFunction = delegate // { // return factory; // }, // //ClipAndEnableScrolling = true // }; //hbox.AddChild(dataGroup); List list = new List { //Layout = new TileLayout { RequestedColumnCount = 4 }, Width = 200, Height = 200, Left = 100, Top = 50, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } }; /*viewport.*/ AddChild(list); #endregion }
override protected void CreateChildren() { base.CreateChildren(); #region Controls Toolbar toolbar = new Toolbar(); AddChild(toolbar); Button button = new Button { Text = "Add data", SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/add"), AutoRepeat = true }; button.ButtonDown += delegate { _dataProvider.AddItem("data " + _random.Next(1, 100)); }; toolbar.AddContentChild(button); #endregion #region Scroller Scroller scroller = new Scroller { SkinClass = typeof(ScrollerSkin2), PercentWidth = 100, PercentHeight = 100 }; //scroller.SetStyle("horizontalScrollPolicy", ScrollPolicy.On); //scroller.SetStyle("verticalScrollPolicy", ScrollPolicy.On); AddChild(scroller); Group viewport = new Group { MouseEnabled = true, Layout = new VerticalLayout { HorizontalAlign = HorizontalAlign.Left, PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 10 } }; scroller.Viewport = viewport; #endregion List <object> source = new List <object> { "Failure", "Teaches", "Success", "One", "Two", "Three", "Four", "Five", "Six" }; _dataProvider = new ArrayList(source); HGroup hGroup = new HGroup(); viewport.AddChild(hGroup); //List<object> source = new List<object> {"Failure", "Teaches", "Success", "One", "Two", "Three", "Four", "Five", "Six"}; var factory = new ItemRendererFactory <DefaultItemRenderer>(); VGroup vGroup = new VGroup { PercentHeight = 100 }; hGroup.AddChild(vGroup); HGroup hGroup2 = new HGroup { PercentWidth = 100 }; vGroup.AddChild(hGroup2); /* LISTS */ #region List 1 List list = new List { Id = "list1", //Layout = new TileLayout { RequestedColumnCount = 4 }, Width = 200, Height = 200, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } }; hGroup2.AddChild(list); #endregion #region List 2 list = new List { Id = "list2", //Layout = new TileLayout { RequestedColumnCount = 3 }, Width = 200, Height = 245, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } }; hGroup2.AddChild(list); #endregion #region List 3 list = new List { Id = "list3", Width = 400, Height = 600, DataProvider = _dataProvider, SkinClass = typeof(ListSkin2), ItemRenderer = new ItemRendererFactory <BigItemRenderer>() }; hGroup.AddChild(list); #endregion vGroup.AddChild(new Spacer { PercentHeight = 100 }); #region Drop down lists VGroup vGroup2 = new VGroup(); vGroup.AddChild(vGroup2); DropDownList dropDownList1 = new DropDownList { DataProvider = _dataProvider }; vGroup2.AddChild(dropDownList1); DropDownList dropDownList2 = new DropDownList { Width = 200, DataProvider = _dataProvider, Prompt = "Pick an item" }; vGroup2.AddChild(dropDownList2); DropDownList dropDownList3 = new DropDownList { Width = 200, SkinClass = typeof(DropDownListSkin2), DataProvider = _dataProvider/*, * SelectedIndex = 0*/ }; vGroup2.AddChild(dropDownList3); ComboBox comboBox = new ComboBox { Width = 200, DataProvider = _dataProvider/*, * SelectedIndex = 0*/ }; vGroup2.AddChild(comboBox); vGroup2.Plugins.Add(new TabManager { TabChildren = new List <DisplayListMember> { dropDownList1, dropDownList2, dropDownList3, comboBox } }); #endregion #region Process renderer click AddEventListener(BigItemRenderer.ADD_BUTTON_CLICKED, delegate(Event e) { BigItemRenderer itemRenderer = (BigItemRenderer)e.Target; Alert.Show("Info", itemRenderer.Data.ToString(), AlertButtonFlag.Ok, new AlertOption(AlertOptionType.HeaderIcon, ImageLoader.Instance.Load("Icons/information"))); }); #endregion }
/// <exception cref="System.IO.IOException"></exception> public virtual void TestDocWithAttachment() { string inlineTextString = "Inline text string created by cblite functional test"; Send("PUT", "/db", Status.Created, null); IDictionary<string, object> attachment = new Dictionary<string, object>(); attachment.Put("content_type", "text/plain"); attachment.Put("data", "SW5saW5lIHRleHQgc3RyaW5nIGNyZWF0ZWQgYnkgY2JsaXRlIGZ1bmN0aW9uYWwgdGVzdA==" ); IDictionary<string, object> attachments = new Dictionary<string, object>(); attachments.Put("inline.txt", attachment); IDictionary<string, object> docWithAttachment = new Dictionary<string, object>(); docWithAttachment.Put("_id", "docWithAttachment"); docWithAttachment.Put("text", inlineTextString); docWithAttachment.Put("_attachments", attachments); IDictionary<string, object> result = (IDictionary<string, object>)SendBody("PUT", "/db/docWithAttachment", docWithAttachment, Status.Created, null); IDictionary expChanges = new Dictionary<string, IDictionary<string, object>>(); IList changesResults = new ArrayList(); IDictionary docChanges = new Dictionary<string, object>(); docChanges.Put("id", "docWithAttachment"); docChanges.Put("seq", 1); IList lChanges = new AList<IDictionary<string, object>>(); Hashtable mChanges = new Dictionary<string, object>(); mChanges.Put("rev", result.Get("rev")); lChanges.AddItem(mChanges); docChanges.Put("changes", lChanges); changesResults.AddItem(docChanges); expChanges.Put("results", changesResults); expChanges.Put("last_seq", 1); Send("GET", "/db/_changes?feed=normal&heartbeat=300000&style=all_docs", Status.Ok , expChanges); result = (IDictionary<string, object>)Send("GET", "/db/docWithAttachment", Status .Ok, null); IDictionary<string, object> attachmentsResult = (IDictionary<string, object>)result .Get("_attachments"); IDictionary<string, object> attachmentResult = (IDictionary<string, object>)attachmentsResult .Get("inline.txt"); // there should be either a content_type or content-type field. //https://github.com/couchbase/couchbase-lite-android-core/issues/12 //content_type becomes null for attachments in responses, should be as set in Content-Type string contentTypeField = (string)attachmentResult.Get("content_type"); NUnit.Framework.Assert.IsTrue(attachmentResult.ContainsKey("content_type")); NUnit.Framework.Assert.IsNotNull(contentTypeField); URLConnection conn = SendRequest("GET", "/db/docWithAttachment/inline.txt", null, null); string contentType = conn.GetHeaderField("Content-Type"); NUnit.Framework.Assert.IsNotNull(contentType); NUnit.Framework.Assert.IsTrue(contentType.Contains("text/plain")); StringWriter writer = new StringWriter(); IOUtils.Copy(conn.GetInputStream(), writer, "UTF-8"); string responseString = writer.ToString(); NUnit.Framework.Assert.IsTrue(responseString.Contains(inlineTextString)); }
override protected void CreateChildren() { base.CreateChildren(); #region Controls Toolbar toolbar = new Toolbar(); AddChild(toolbar); Button button = new Button { Text = "Add data", SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/add"), AutoRepeat = true }; button.ButtonDown += delegate { _dataProvider.AddItem("data " + _random.Next(1, 100)); }; toolbar.AddContentChild(button); button = new Button { Text = "Previous tab", SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/previous") }; button.Click += delegate { _buttonBar.SelectedIndex--; _viewstack.Previous(); }; toolbar.AddContentChild(button); button = new Button { Text = "Next tab", SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/next") }; button.Click += delegate { _buttonBar.SelectedIndex++; _viewstack.Next(); }; toolbar.AddContentChild(button); #endregion #region Scroller Scroller scroller = new Scroller { SkinClass = typeof(ScrollerSkin2), PercentWidth = 100, PercentHeight = 100 }; //scroller.SetStyle("horizontalScrollPolicy", ScrollPolicy.On); //scroller.SetStyle("verticalScrollPolicy", ScrollPolicy.On); AddChild(scroller); Group viewport = new Group { MouseEnabled = true, Layout = new VerticalLayout { HorizontalAlign = HorizontalAlign.Left, PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 10 } }; scroller.Viewport = viewport; #endregion List <object> source = new List <object> { "Failure", "Teaches", "Success", "One", "Two", "Three", "Four", "Five", "Six" }; _dataProvider = new ArrayList(source); viewport.AddChild(new Label { Text = "ButtonBar:" }); #region Button bar _buttonBar = new ButtonBar { DataProvider = new ArrayList(new List <object> { "List 1", "List 2", "List 3", "List 4", "List 5" }), SkinClass = typeof(ButtonBarSkin2), RequireSelection = true }; _buttonBar.AddEventListener(Event.CHANGE, delegate(Event e) { IndexChangeEvent ice = e as IndexChangeEvent; if (null != ice) { int newIndex = ice.NewIndex; //Debug.Log("Changed to: " + newIndex); _viewstack.SelectedIndex = newIndex; } }); viewport.AddChild(_buttonBar); #endregion #region ViewStack viewport.AddChild(new Label { Text = "ViewStack (having 5 lists as children):" }); _viewstack = new ViewStack { ResizeToContent = true }; viewport.AddChild(_viewstack); #endregion /* Factory is used for creating renderer instances */ var factory = new ItemRendererFactory <DefaultItemRenderer>(); /* LISTS */ #region List 1 List list = new List { Id = "list1", //Layout = new TileLayout { RequestedColumnCount = 4 }, Width = 200, Height = 200, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), /* ItemRendererFunction is used for switching between different factories, based on the supplied item */ ItemRendererFunction = delegate { return(factory); } }; _viewstack.AddChild(list); #endregion #region List 2 list = new List { Id = "list2", //Layout = new TileLayout { RequestedColumnCount = 3 }, Width = 200, Height = 245, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } }; _viewstack.AddChild(list); #endregion #region List 3 list = new List { Id = "list3", Width = 400, Height = 450, DataProvider = _dataProvider, SkinClass = typeof(ListSkin2), ItemRenderer = new ItemRendererFactory <BigItemRenderer>() }; _viewstack.AddChild(list); #endregion #region List 4 list = new List { Id = "list4", Width = 600, Height = 800, Layout = new TileLayout { HorizontalGap = 0, VerticalGap = 0, RequestedRowCount = 4, RequestedColumnCount = 3 }, DataProvider = _dataProvider, SkinClass = typeof(ListSkin2), ItemRenderer = new ItemRendererFactory <BigItemRenderer>() }; _viewstack.AddChild(list); #endregion #region List 5 (horizontal) list = new List { Id = "list5", Width = 800, Height = 100, Layout = new HorizontalLayout { Gap = 0, RequestedColumnCount = 3 }, DataProvider = _dataProvider, SkinClass = typeof(ListSkin2), ItemRenderer = new ItemRendererFactory <BigItemRenderer>() }; _viewstack.AddChild(list); #endregion #region Process renderer click AddEventListener(BigItemRenderer.ADD_BUTTON_CLICKED, delegate(Event e) { IItemRenderer itemRenderer = (IItemRenderer)e.Target; Alert.Show("Info", itemRenderer.Data.ToString(), AlertButtonFlag.Ok, new AlertOption(AlertOptionType.HeaderIcon, ImageLoader.Instance.Load("Icons/information"))); }); #endregion }
override protected void CreateChildren() { base.CreateChildren(); #region Controls Toolbar toolbar = new Toolbar(); AddChild(toolbar); Button button = new Button { Text = "Add data", SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/add"), AutoRepeat = true }; button.ButtonDown += delegate { _dataProvider.AddItem("data " + _random.Next(1, 100)); }; toolbar.AddContentChild(button); #endregion #region Scroller Scroller scroller = new Scroller { SkinClass = typeof(ScrollerSkin2), PercentWidth = 100, PercentHeight = 100 }; //scroller.SetStyle("horizontalScrollPolicy", ScrollPolicy.On); //scroller.SetStyle("verticalScrollPolicy", ScrollPolicy.On); AddChild(scroller); Group viewport = new Group { MouseEnabled = true, Layout = new VerticalLayout { HorizontalAlign = HorizontalAlign.Left, PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 10 } }; scroller.Viewport = viewport; //AddChild(viewport); #endregion #region Data controls List <object> source = new List <object> { "Failure", "Teaches", "Success", "One", "Two", "Three", "Four", "Five", "Six" }; _dataProvider = new ArrayList(source); var factory = new ItemRendererFactory <DefaultItemRenderer>(); /* LISTS */ #region HGroup HGroup hGroup1 = new HGroup { PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 20 }; //hbox.SetStyle("showBackground", true); //hbox.SetStyle("backgroundColor", RgbColor.FromHex(0x004CFF).ToColor()); viewport.AddChild(hGroup1); #endregion HGroup hGroup = new HGroup(); viewport.AddChild(hGroup); /* DATA GROUPS */ #region Data group 1 hGroup1 = new HGroup { PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 50 }; hGroup.AddChild(hGroup1); DataGroup dataGroup = new DataGroup { Layout = new VerticalLayout(), DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate(object item) { return(factory); } }; hGroup1.AddChild(dataGroup); #endregion #region Data group 2 hGroup1 = new HGroup { PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 50 }; hGroup.AddChild(hGroup1); dataGroup = new DataGroup { Layout = new TileLayout { RequestedColumnCount = 2 }, //Width = 200, Height = 200, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } //ClipAndEnableScrolling = true }; hGroup1.AddChild(dataGroup); #endregion #region Data group 3 hGroup1 = new HGroup { PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 50 }; hGroup.AddChild(hGroup1); dataGroup = new DataGroup { Layout = new TileLayout { RequestedColumnCount = 4 }, //Width = 200, Height = 200, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } //ClipAndEnableScrolling = true }; hGroup1.AddChild(dataGroup); #endregion #endregion #region VGroup VGroup vgroup = new VGroup(); hGroup.AddChild(vgroup); #endregion #region List 1 List list = new List { //Layout = new TileLayout { RequestedColumnCount = 4 }, Width = 200, Height = 200, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } }; vgroup.AddChild(list); #endregion #region List 2 list = new List { //Layout = new TileLayout { RequestedColumnCount = 3 }, Width = 200, Height = 245, DataProvider = _dataProvider, //ItemRenderer = new ItemRendererFactory <DefaultItemRenderer>(), ItemRendererFunction = delegate { return(factory); } }; vgroup.AddChild(list); #endregion #region List 3 list = new List { Id = "list3", Width = 400, Height = 600, DataProvider = _dataProvider, SkinClass = typeof(ListSkin2), ItemRenderer = new ItemRendererFactory <BigItemRenderer>() }; hGroup.AddChild(list); #endregion #region Process renderer click AddEventListener(BigItemRenderer.ADD_BUTTON_CLICKED, delegate(Event e) { BigItemRenderer itemRenderer = (BigItemRenderer)e.Target; Alert.Show("Info", itemRenderer.Data.ToString(), AlertButtonFlag.Ok, new AlertOption(AlertOptionType.HeaderIcon, ImageLoader.Instance.Load("Icons/information"))); }); #endregion }
/// <exception cref="System.IO.IOException"></exception> public virtual void TestDocWithAttachment() { string inlineTextString = "Inline text string created by cblite functional test"; Send("PUT", "/db", Status.Created, null); IDictionary <string, object> attachment = new Dictionary <string, object>(); attachment.Put("content_type", "text/plain"); attachment.Put("data", "SW5saW5lIHRleHQgc3RyaW5nIGNyZWF0ZWQgYnkgY2JsaXRlIGZ1bmN0aW9uYWwgdGVzdA==" ); IDictionary <string, object> attachments = new Dictionary <string, object>(); attachments.Put("inline.txt", attachment); IDictionary <string, object> docWithAttachment = new Dictionary <string, object>(); docWithAttachment.Put("_id", "docWithAttachment"); docWithAttachment.Put("text", inlineTextString); docWithAttachment.Put("_attachments", attachments); IDictionary <string, object> result = (IDictionary <string, object>)SendBody("PUT", "/db/docWithAttachment", docWithAttachment, Status.Created, null); IDictionary expChanges = new Dictionary <string, IDictionary <string, object> >(); IList changesResults = new ArrayList(); IDictionary docChanges = new Dictionary <string, object>(); docChanges.Put("id", "docWithAttachment"); docChanges.Put("seq", 1); IList lChanges = new AList <IDictionary <string, object> >(); Hashtable mChanges = new Dictionary <string, object>(); mChanges.Put("rev", result.Get("rev")); lChanges.AddItem(mChanges); docChanges.Put("changes", lChanges); changesResults.AddItem(docChanges); expChanges.Put("results", changesResults); expChanges.Put("last_seq", 1); Send("GET", "/db/_changes?feed=normal&heartbeat=300000&style=all_docs", Status.Ok , expChanges); result = (IDictionary <string, object>)Send("GET", "/db/docWithAttachment", Status .Ok, null); IDictionary <string, object> attachmentsResult = (IDictionary <string, object>)result .Get("_attachments"); IDictionary <string, object> attachmentResult = (IDictionary <string, object>)attachmentsResult .Get("inline.txt"); // there should be either a content_type or content-type field. //https://github.com/couchbase/couchbase-lite-android-core/issues/12 //content_type becomes null for attachments in responses, should be as set in Content-Type string contentTypeField = (string)attachmentResult.Get("content_type"); NUnit.Framework.Assert.IsTrue(attachmentResult.ContainsKey("content_type")); NUnit.Framework.Assert.IsNotNull(contentTypeField); URLConnection conn = SendRequest("GET", "/db/docWithAttachment/inline.txt", null, null); string contentType = conn.GetHeaderField("Content-Type"); NUnit.Framework.Assert.IsNotNull(contentType); NUnit.Framework.Assert.IsTrue(contentType.Contains("text/plain")); StringWriter writer = new StringWriter(); IOUtils.Copy(conn.GetInputStream(), writer, "UTF-8"); string responseString = writer.ToString(); NUnit.Framework.Assert.IsTrue(responseString.Contains(inlineTextString)); }
override protected void CreateChildren() { base.CreateChildren(); #region Controls Toolbar toolbar = new Toolbar(); AddChild(toolbar); Button button = new Button { Text = "Add data", SkinClass = typeof(ImageButtonSkin), Icon = ImageLoader.Instance.Load("Icons/star"), AutoRepeat = true }; button.ButtonDown += delegate { _dataProvider.AddItem( new ExampleItem { FirstName = "First" + _random.Next(1, 100), LastName = "Last" + _random.Next(1, 100), Age = _random.Next(1, 80), DrivingLicense = _random.Next(0, 2) == 1 } ); }; toolbar.AddContentChild(button); #endregion #region Scroller Scroller scroller = new Scroller { SkinClass = typeof(ScrollerSkin2), PercentWidth = 100, PercentHeight = 100 }; //scroller.SetStyle("horizontalScrollPolicy", ScrollPolicy.On); //scroller.SetStyle("verticalScrollPolicy", ScrollPolicy.On); AddChild(scroller); Group viewport = new Group { MouseEnabled = true, Layout = new VerticalLayout { HorizontalAlign = HorizontalAlign.Left, PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 10, Gap = 10 } }; scroller.Viewport = viewport; #endregion #region Fill the data provider List <string> names = new List <string> { "Failure", "Teaches", "Success", "One", "Two", "Three", "Four", "Five", "Six" }; List <object> source = new List <object>(); foreach (var theName in names) { source.Add( new ExampleItem { FirstName = theName, LastName = theName, Age = _random.Next(1, 10), DrivingLicense = _random.Next(0, 2) == 1 } ); } _dataProvider = new ArrayList(source); #endregion HGroup hGroup = new HGroup { PercentWidth = 100, PercentHeight = 100 }; viewport.AddChild(hGroup); #region Grid (header + list + footer) VGroup vGroup = new VGroup { PercentWidth = 100, PercentHeight = 100, Gap = 0 }; hGroup.AddChild(vGroup); #region Header /* Implement your own header logic here */ /*HGroup header = new HGroup {PercentWidth = 100, Gap = 0}; * vGroup.AddChild(header); * * for (int i = 0; i < 5; i++) * { * Button btnCol = new Button // example header * { * Text = "Column " + (i + 1), * ToggleMode = true, * PercentWidth = 100 * }; * btnCol.Click += delegate(Event e) * { * // sort, filder and refresh (do list.DataProvider = list.DataProvider) * }; * header.AddChild(btnCol); * }*/ #endregion #region List List list = new List { Id = "list1", PercentWidth = 100, PercentHeight = 100, DataProvider = _dataProvider, LabelField = "FirstName", // this must be set due to list logic legacy (the field must exist in DTO) SkinClass = typeof(ListSkin2), ItemRenderer = new ItemRendererFactory <MyGridItemRenderer>() }; vGroup.AddChild(list); #endregion #region Footer HGroup footer = new HGroup { PercentWidth = 100, Gap = 30, PaddingLeft = 10, PaddingRight = 10, PaddingTop = 10, PaddingBottom = 0 }; vGroup.AddChild(footer); _lblSum = new Label { Text = "Age sum: ", StyleName = "footer" }; footer.AddChild(_lblSum); _lblNumberOfSelectedItems = new Label { Text = "Driving licenses: ", StyleName = "footer" }; footer.AddChild(_lblNumberOfSelectedItems); UpdateFooter(); #endregion #endregion #region Process renderer click AddEventListener(MyGridItemRenderer.ADD_BUTTON_CLICKED, delegate(Event e) { IItemRenderer itemRenderer = (IItemRenderer)e.Target; Alert.Show("Info", itemRenderer.Data.ToString(), AlertButtonFlag.Ok, new AlertOption(AlertOptionType.HeaderIcon, (object)ImageLoader.Instance.Load("Icons/information"))); }); AddEventListener(MyGridItemRenderer.EDIT_BUTTON_CLICKED, delegate(Event e) { var editor = new ExamplePopupEditor { Title = "Edit", Icon = ImageLoader.Instance.Load("Icons/edit"), Data = ((MyGridItemRenderer)e.Target).Data, CloseOnEsc = true }; editor.AddEventListener(CloseEvent.CLOSE, delegate { PopupManager.Instance.RemovePopup(editor); }); PopupManager.Instance.AddPopup(editor, true); }); #endregion #region Process property change _dataProvider.AddEventListener(PropertyChangeEvent.PROPERTY_CHANGE, delegate(Event e) { //PropertyChangeEvent pce = (PropertyChangeEvent) e; //Debug.Log(pce.NewValue); UpdateFooter(); }); #endregion }