Ejemplo n.º 1
0
        private void encodeDynamicVector(cape.DynamicVector cc, int indent, cape.StringBuilder sb, bool niceFormatting)
        {
            print("[", indent, false, true, sb, niceFormatting);
            var first = true;
            var array = cc.toVector();

            if (array != null)
            {
                var n = 0;
                var m = array.Count;
                for (n = 0; n < m; n++)
                {
                    var o = array[n];
                    if (o != null)
                    {
                        if (first == false)
                        {
                            print(",", indent, false, true, sb, niceFormatting);
                        }
                        encodeObject(o, indent + 1, sb, niceFormatting);
                        first = false;
                    }
                }
            }
            print("]", indent, true, false, sb, niceFormatting);
        }
Ejemplo n.º 2
0
        public cave.ui.FormDeclaration.Element addMultipleChoiceInput(string id, string label, string description, cape.KeyValueList <string, string> values)
        {
            var v = cave.ui.FormDeclaration.Element.forType("MultipleChoiceInput");

            v.setProperty("id", (object)id);
            v.setProperty("label", (object)label);
            v.setProperty("description", (object)description);
            var vv = new cape.DynamicVector();
            var it = values.iterate();

            while (it != null)
            {
                var kvp = it.next();
                if (!(kvp != null))
                {
                    break;
                }
                var m = new cape.DynamicMap();
                m.set("key", (object)kvp.key);
                m.set("value", (object)kvp.value);
                vv.append((object)m);
            }
            v.setProperty("values", (object)vv);
            return(addElement(v));
        }
Ejemplo n.º 3
0
 public cape.DynamicVector mergeDynamicVector(cape.DynamicVector dynamicVector)
 {
     if (!(dynamicVector != null) || dynamicVector.getSize() < 1)
     {
         return(this);
     }
     return(mergeVector(dynamicVector.toVector()));
 }
        public cape.DynamicVector toVectorOfMaps()
        {
            var v = new cape.DynamicVector();

            while (true)
            {
                var o = next();
                if (o == null)
                {
                    break;
                }
                v.append((object)o);
            }
            return(v);
        }
Ejemplo n.º 5
0
        public virtual object duplicate()
        {
            var v  = new cape.DynamicVector();
            var it = iterate();

            while (it != null)
            {
                var o = it.next();
                if (o == null)
                {
                    break;
                }
                v.append(o);
            }
            return((object)v);
        }
Ejemplo n.º 6
0
        public cape.DynamicVector getDynamicVectorValue(string key, cape.DynamicVector defval)
        {
            var str = getStringValue(key, null);

            if (!(str != null))
            {
                return(defval);
            }
            var v = cape.JSONParser.parse(str) as cape.DynamicVector;

            if (!(v != null))
            {
                return(defval);
            }
            return(v);
        }
Ejemplo n.º 7
0
        public static cape.DynamicVector forObjectVector(System.Collections.Generic.List <object> vector)
        {
            var v = new cape.DynamicVector();

            if (vector != null)
            {
                var n = 0;
                var m = vector.Count;
                for (n = 0; n < m; n++)
                {
                    var item = vector[n];
                    if (item != null)
                    {
                        v.append(item);
                    }
                }
            }
            return(v);
        }
Ejemplo n.º 8
0
            public override object getWidgetValue()
            {
                var v     = new cape.DynamicVector();
                var array = cape.String.split(getWidgetText(), ',');

                if (array != null)
                {
                    var n = 0;
                    var m = array.Count;
                    for (n = 0; n < m; n++)
                    {
                        var @string = array[n];
                        if (@string != null)
                        {
                            v.append((object)cape.String.strip(@string));
                        }
                    }
                }
                return((object)v);
            }
Ejemplo n.º 9
0
        public cape.DynamicVector getGridData()
        {
            var dv    = new cape.DynamicVector();
            var array = cave.ui.Widget.getChildren((Windows.UI.Xaml.UIElement)widgetDataBox);

            if (array != null)
            {
                var n = 0;
                var m = array.Count;
                for (n = 0; n < m; n++)
                {
                    var dgr = array[n] as cave.ui.DataGridWidget.DataGridRowWidget;
                    if (dgr != null)
                    {
                        dgr.collectRowDataTo(dv);
                    }
                }
            }
            return(dv);
        }
Ejemplo n.º 10
0
        public void setWidgetItemsAsStringList(cape.DynamicVector options)
        {
            var list = new cape.KeyValueList <string, string>();

            if (options != null)
            {
                var array = options.toVector();
                if (array != null)
                {
                    var n = 0;
                    var m = array.Count;
                    for (n = 0; n < m; n++)
                    {
                        var option = array[n] as string;
                        if (option != null)
                        {
                            list.add((string)option, (string)option);
                        }
                    }
                }
            }
            setWidgetItemsAsKeyValueList(list);
        }
Ejemplo n.º 11
0
            public void collectRowDataTo(cape.DynamicVector dv)
            {
                if (!(dv != null))
                {
                    return;
                }
                var dm    = new cape.DynamicMap();
                var array = cave.ui.Widget.getChildren((Windows.UI.Xaml.UIElement)widgetCellContainer);

                if (array != null)
                {
                    var n = 0;
                    var m = array.Count;
                    for (n = 0; n < m; n++)
                    {
                        var cell = array[n] as cave.ui.DataGridWidget.CellWidget;
                        if (cell != null)
                        {
                            dm.set(cell.getWidgetKey(), (object)cell.getWidgetText());
                        }
                    }
                }
                dv.append((object)dm);
            }
Ejemplo n.º 12
0
        public static cave.ui.SelectWidget forStringList(cave.GuiApplicationContext context, cape.DynamicVector options)
        {
            var v = new cave.ui.SelectWidget(context);

            v.setWidgetItemsAsStringList(options);
            return(v);
        }
Ejemplo n.º 13
0
        private object acceptObject()
        {
            if (acceptChar('['))
            {
                var v = new cape.DynamicVector();
                while (true)
                {
                    if (acceptChar(']'))
                    {
                        break;
                    }
                    var o = acceptObject();
                    if (o == null)
                    {
                        return(null);
                    }
                    v.append(o);
                    acceptChar(',');
                }
                return((object)v);
            }
            if (acceptChar('{'))
            {
                var v1 = new cape.DynamicMap();
                while (true)
                {
                    if (acceptChar('}'))
                    {
                        break;
                    }
                    var key = acceptString();
                    if (object.Equals(key, null))
                    {
                        return(null);
                    }
                    if (acceptChar(':') == false)
                    {
                        return(null);
                    }
                    var val = acceptObject();
                    if (val == null)
                    {
                        return(null);
                    }
                    if (val is cape.JSONParser.NullObject)
                    {
                        v1.set(key, null);
                    }
                    else
                    {
                        v1.set(key, val);
                    }
                    acceptChar(',');
                }
                return((object)v1);
            }
            var s = acceptString();

            if (s != null)
            {
                return((object)s);
            }
            var b = acceptBoolean();

            if (b != null)
            {
                return((object)b);
            }
            var n = acceptNull();

            if (n != null)
            {
                return((object)n);
            }
            var v2 = acceptNumber();

            if (v2 != null)
            {
                return(v2);
            }
            return(null);
        }
Ejemplo n.º 14
0
        public static cape.DynamicMap parseAsTreeObject(string xml, bool ignoreWhiteSpace = true)
        {
            cape.DynamicMap root  = null;
            var             stack = new cape.Stack <cape.DynamicMap>();
            var             pp    = capex.text.XMLParser.forString(xml);

            pp.setIgnoreWhiteSpace(ignoreWhiteSpace);
            while (true)
            {
                var o = pp.next();
                if (o == null)
                {
                    break;
                }
                if (o is capex.text.XMLParser.StartElement)
                {
                    var name = ((capex.text.XMLParser.StartElement)o).getName();
                    if (root == null && object.Equals(name, "?xml"))
                    {
                        continue;
                    }
                    var nn = new cape.DynamicMap();
                    nn.set("name", (object)name);
                    nn.set("attributes", (object)((capex.text.XMLParser.StartElement)o).getParams());
                    if (root == null)
                    {
                        root = nn;
                        stack.push((cape.DynamicMap)nn);
                    }
                    else
                    {
                        var current = stack.peek();
                        if (current == null)
                        {
                            current = root;
                        }
                        var children = current.getDynamicVector("children");
                        if (children == null)
                        {
                            children = new cape.DynamicVector();
                            current.set("children", (object)children);
                        }
                        children.append((object)nn);
                        stack.push((cape.DynamicMap)nn);
                    }
                }
                else if (o is capex.text.XMLParser.EndElement)
                {
                    stack.pop();
                }
                else if (o is capex.text.XMLParser.CharacterData)
                {
                    var current1 = stack.peek();
                    if (current1 != null)
                    {
                        var children1 = current1.getDynamicVector("children");
                        if (children1 == null)
                        {
                            children1 = new cape.DynamicVector();
                            current1.set("children", (object)children1);
                        }
                        children1.append((object)((capex.text.XMLParser.CharacterData)o).getData());
                    }
                }
            }
            return(root);
        }
Ejemplo n.º 15
0
        public virtual Windows.UI.Xaml.UIElement createWidgetForElement(cave.ui.FormDeclaration.Element element)
        {
            if (!(element != null))
            {
                return(null);
            }
            if (element.isType("TextInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextInputWidget.forType(context, cave.ui.TextInputWidget.TYPE_DEFAULT, asPlaceHolder(element.getLabel())));
            }
            if (element.isType("TextButton"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextButtonWidget.forText(context, element.getPropertyString("text"), getActionHandler(element.getPropertyString("action"))));
            }
            if (element.isType("RawTextInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextInputWidget.forType(context, cave.ui.TextInputWidget.TYPE_NONASSISTED, asPlaceHolder(element.getLabel())));
            }
            if (element.isType("PasswordInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextInputWidget.forType(context, cave.ui.TextInputWidget.TYPE_PASSWORD, asPlaceHolder(element.getLabel())));
            }
            if (element.isType("NameInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextInputWidget.forType(context, cave.ui.TextInputWidget.TYPE_NAME, asPlaceHolder(element.getLabel())));
            }
            if (element.isType("EmailAddressInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextInputWidget.forType(context, cave.ui.TextInputWidget.TYPE_EMAIL_ADDRESS, asPlaceHolder(element.getLabel())));
            }
            if (element.isType("PhoneNumberInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextInputWidget.forType(context, cave.ui.TextInputWidget.TYPE_PHONE_NUMBER, asPlaceHolder(element.getLabel())));
            }
            if (element.isType("StreetAddressInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextInputWidget.forType(context, cave.ui.TextInputWidget.TYPE_STREET_ADDRESS, asPlaceHolder(element.getLabel())));
            }
            if (element.isType("TextAreaInput"))
            {
                return((Windows.UI.Xaml.UIElement)cave.ui.TextAreaWidget.forPlaceholder(context, asPlaceHolder(element.getLabel()), element.getPropertyInteger("rows")));
            }
            if (element.isType("CodeInput"))
            {
                var v = cave.ui.TextAreaWidget.forPlaceholder(context, asPlaceHolder(element.getLabel()), element.getPropertyInteger("rows"));
                v.configureMonospaceFont();
                return((Windows.UI.Xaml.UIElement)v);
            }
            if (element.isType("StaticTextElement"))
            {
                var st  = cave.ui.FormWidget.StaticTextWidget.forText(context, element.getLabel());
                var bgc = getBackgroundColorForElement(element);
                var fgc = getAdjustedForegroundColor(element, bgc);
                st.setBackgroundColor(bgc);
                st.setTextColor(fgc);
                return((Windows.UI.Xaml.UIElement)st);
            }
            if (element.isType("RadioGroupInput"))
            {
                var items = element.getPropertyDynamicVector("items");
                if (!(items != null))
                {
                    items = new cape.DynamicVector();
                }
                return((Windows.UI.Xaml.UIElement)cave.ui.RadioButtonGroupWidget.forGroup(context, element.getPropertyString("groupName"), items.toVectorOfStrings()));
            }
            if (element.isType("MultipleChoiceInput"))
            {
                var kvl    = new cape.KeyValueList <string, string>();
                var values = element.getPropertyVector("values");
                if (values != null)
                {
                    var n = 0;
                    var m = values.Count;
                    for (n = 0; n < m; n++)
                    {
                        var value = values[n] as cape.DynamicMap;
                        if (value != null)
                        {
                            var key = value.getString("key");
                            var val = value.getString("value");
                            if (key != null)
                            {
                                kvl.add((string)key, (string)val);
                            }
                        }
                    }
                }
                return((Windows.UI.Xaml.UIElement)cave.ui.SelectWidget.forKeyValueList(context, kvl));
            }
            if (element.isType("CheckBoxInput"))
            {
                var cbx = cave.ui.CheckBoxWidget.forText(context, element.getPropertyString("text"));
                cbx.setWidgetChecked(element.getPropertyBoolean("isChecked"));
                return((Windows.UI.Xaml.UIElement)cbx);
            }
            if (element.isType("DateInput"))
            {
                var v1 = cave.ui.DateSelectorWidget.forContext(context);
                v1.setSkipYears(element.getPropertyInteger("skipYears"));
                return((Windows.UI.Xaml.UIElement)v1);
            }
            if (element.isType("StringListInput"))
            {
                var v2 = new cave.ui.FormWidget.MyStringListInputWidget(context);
                v2.setWidgetPlaceholder(element.getLabel());
                return((Windows.UI.Xaml.UIElement)v2);
            }
            cave.ui.CustomContainerWidget container = null;
            if (element.isType("VerticalContainer"))
            {
                var vb = cave.ui.VerticalBoxWidget.forContext(context);
                if (formWidth > 0)
                {
                    vb.setWidgetWidthRequest(formWidth);
                }
                vb.setWidgetSpacing(elementSpacing);
                container = (cave.ui.CustomContainerWidget)vb;
            }
            else if (element.isType("HorizontalContainer"))
            {
                var hb = cave.ui.HorizontalBoxWidget.forContext(context);
                hb.setWidgetSpacing(elementSpacing);
                container = (cave.ui.CustomContainerWidget)hb;
            }
            else if (element.isType("GroupContainer"))
            {
                var vb1 = cave.ui.VerticalBoxWidget.forContext(context);
                if (formWidth > 0)
                {
                    vb1.setWidgetWidthRequest(formWidth);
                }
                vb1.setWidgetSpacing(elementSpacing);
                var wlayer = cave.ui.LayerWidget.forContext(context);
                var bgc1   = getBackgroundColorForElement(element);
                wlayer.addWidget((Windows.UI.Xaml.UIElement)cave.ui.CanvasWidget.forColor(context, bgc1));
                var groupLabel = cave.ui.LabelWidget.forText(context, element.getPropertyString("title"));
                groupLabel.setWidgetTextColor(getAdjustedForegroundColor(element, bgc1));
                wlayer.addWidget((Windows.UI.Xaml.UIElement)cave.ui.LayerWidget.forWidget(context, (Windows.UI.Xaml.UIElement)groupLabel, context.getHeightValue("2mm")));
                vb1.addWidget((Windows.UI.Xaml.UIElement)wlayer);
                container = (cave.ui.CustomContainerWidget)vb1;
            }
            if (!(container != null))
            {
                System.Diagnostics.Debug.WriteLine("Unsupported form declaration container encountered: `" + element.getType() + "'");
                return(null);
            }
            var array = element.getChildren();

            if (array != null)
            {
                var n2 = 0;
                var m2 = array.Count;
                for (n2 = 0; n2 < m2; n2++)
                {
                    var child = array[n2];
                    if (child != null)
                    {
                        var ww = createAndRegisterWidget(child);
                        if (!(ww != null))
                        {
                            continue;
                        }
                        var label = child.getLabel();
                        if (enableFieldLabels && !cape.String.isEmpty(label))
                        {
                            var wlayer1 = cave.ui.LayerWidget.forContext(context);
                            var bgc2    = getBackgroundColorForElement(child);
                            wlayer1.addWidget((Windows.UI.Xaml.UIElement)cave.ui.CanvasWidget.forColor(context, bgc2));
                            var wbox = cave.ui.VerticalBoxWidget.forContext(context);
                            var lw   = cave.ui.LabelWidget.forText(context, label);
                            lw.setWidgetTextColor(getAdjustedForegroundColor(child, bgc2));
                            lw.setWidgetFontSize((double)fieldLabelFontSize);
                            if (fieldLabelFontResource != null)
                            {
                                lw.setWidgetFontResource(fieldLabelFontResource);
                            }
                            else
                            {
                                lw.setWidgetFontFamily(fieldLabelFontFamily);
                            }
                            var ss = context.getHeightValue("1mm");
                            wbox.addWidget((Windows.UI.Xaml.UIElement)cave.ui.LayerWidget.forWidget(context, (Windows.UI.Xaml.UIElement)lw).setWidgetMarginLeft(ss).setWidgetMarginRight(ss).setWidgetMarginTop(ss));
                            wbox.addWidget(ww, child.getPropertyDouble("weight"));
                            wlayer1.addWidget((Windows.UI.Xaml.UIElement)wbox);
                            addToContainerWithWeight(container, (Windows.UI.Xaml.UIElement)wlayer1, child.getPropertyDouble("weight"));
                        }
                        else
                        {
                            addToContainerWithWeight(container, ww, child.getPropertyDouble("weight"));
                        }
                    }
                }
            }
            return((Windows.UI.Xaml.UIElement)container);
        }