public void setWidget(cave.ui.CustomContainerWidget widget) { if (!!(myWidget != null)) { System.Diagnostics.Debug.WriteLine("[cave.ui.ScreenForWidget.setWidget] (ScreenForWidget.sling:406:2): Multiple calls to setWidget()"); return; } if (!(widget != null)) { return; } myWidget = (Windows.UI.Xaml.UIElement)widget; widget.setAllowResize(false); this.Content = widget; widget.tryInitializeWidget(); cave.ui.Widget.onWidgetAddedToParent((Windows.UI.Xaml.UIElement)widget); cave.ui.Widget.notifyOnAddedToScreen((Windows.UI.Xaml.UIElement)widget, this); }
public void addToContainerWithWeight(cave.ui.CustomContainerWidget container, Windows.UI.Xaml.UIElement child, double weight) { if (weight <= 0.00) { container.addWidget(child); } else if (container is cave.ui.HorizontalBoxWidget) { ((cave.ui.HorizontalBoxWidget)container).addWidget(child, weight); } else if (container is cave.ui.VerticalBoxWidget) { ((cave.ui.VerticalBoxWidget)container).addWidget(child, weight); } else { System.Diagnostics.Debug.WriteLine("[cave.ui.FormWidget.addToContainerWithWeight] (FormWidget.sling:495:2): Tried to add a widget with weight to a container that is not a box. Ignoring weight."); container.addWidget(child); } }
public override void initializeWidget() { base.initializeWidget(); vrb = new System.Collections.Generic.List <cave.ui.RadioButtonWidget.MyRadioButtonWidget>(); cave.ui.CustomContainerWidget box = null; if (widgetOrientation == cave.ui.RadioButtonWidget.HORIZONTAL) { box = (cave.ui.CustomContainerWidget)cave.ui.HorizontalBoxWidget.forContext(context, context.getHeightValue("2500um"), context.getHeightValue("1500um")); } else { box = (cave.ui.CustomContainerWidget)cave.ui.VerticalBoxWidget.forContext(context, context.getHeightValue("2500um"), context.getHeightValue("1500um")); } for (var i = 0; i < cape.Vector.getSize(widgetItems); i++) { var d = cape.Vector.get(widgetItems, i); if (!(d != null)) { continue; } var rb = new cave.ui.RadioButtonWidget.MyRadioButtonWidget(context); rb.setWidgetText(d); rb.setWidgetIndex(i); rb.setWidgetContainer(this); rb.setWidgetFontSize(widgetFontSize); rb.setWidgetFontResource(widgetFontResource); rb.setWidgetColor(widgetOnSelectedColor); vrb.Add(rb); if (widgetOrientation == cave.ui.RadioButtonWidget.HORIZONTAL) { ((cave.ui.HorizontalBoxWidget)box).addWidget((Windows.UI.Xaml.UIElement)rb, 1.00); } else { box.addWidget((Windows.UI.Xaml.UIElement)rb); } } addWidget((Windows.UI.Xaml.UIElement)box); }
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); }