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);
        }
Example #3
0
        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
        }
Example #4
0
    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));
 }
Example #6
0
    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
    }
Example #7
0
    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
    }
Example #8
0
        /// <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));
        }
Example #9
0
    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
    }