/// <summary> /// Registered factory creation method /// </summary> /// <param name="aArgs"> /// Arguments <see cref="FactoryInvocationArgs"/> /// </param> /// <returns> /// Result widget <see cref="IAdaptableControl"/> /// </returns> public static IAdaptableControl DefaultFactoryCreate (FactoryInvocationArgs aArgs) { IAdaptableControl wdg; if (aArgs.State == PropertyDefinition.ReadOnly) wdg = new DataLabel(); else wdg = new DataRadioGroup(); wdg.Mappings = aArgs.PropertyName; return (wdg); }
/// <summary> /// Registered factory creation method /// </summary> /// <param name="aArgs"> /// Arguments <see cref="FactoryInvocationArgs"/> /// </param> /// <returns> /// Result widget <see cref="IAdaptableControl"/> /// </returns> public static IAdaptableControl DefaultFactoryCreate(FactoryInvocationArgs aArgs) { IAdaptableControl wdg; if (aArgs.State == PropertyDefinition.ReadOnly) { wdg = new DataLabel(); } else { wdg = new DataEntry(); } wdg.Mappings = aArgs.PropertyName; return(wdg); }
/// <summary> /// Creates default widgets for properties which don't specify their property description /// </summary> /// <param name="aArgs"> /// Widget creation arguments <see cref="FactoryInvocationArgs"/> /// </param> /// <returns> /// Result widget <see cref="IAdaptableControl"/> /// </returns> private static IAdaptableControl CreateDefaultGtkWidget(FactoryInvocationArgs aArgs) { foreach (FactoryInvokerClass invoker in AllWidgetsForType(aArgs.PropertyInfo.PropertyType)) { return(invoker.Invoke(aArgs)); } // Silly fallback if registration is not done IAdaptableControl wdg = null; switch (aArgs.State) { case PropertyDefinition.ReadOnly: if (aArgs.PropertyInfo.PropertyType == typeof(string)) { wdg = new DataLabel(aArgs.PropertyName); break; } else if (aArgs.PropertyInfo.PropertyType == typeof(bool)) { wdg = new DataCheckButton(aArgs.PropertyName); (wdg as DataCheckButton).Editable = false; } else if (aArgs.PropertyInfo.PropertyType == typeof(Gdk.Pixbuf)) { wdg = new DataImage(aArgs.PropertyName); } else { wdg = new DataLabel(aArgs.PropertyName); } break; case PropertyDefinition.ReadWrite: if (aArgs.PropertyInfo.PropertyType == typeof(string)) { wdg = new DataEntry(aArgs.PropertyName); } else if (aArgs.PropertyInfo.PropertyType == typeof(bool)) { wdg = new DataCheckButton(aArgs.PropertyName); } else if ((aArgs.PropertyInfo.PropertyType == typeof(int)) || (aArgs.PropertyInfo.PropertyType == typeof(float)) || (aArgs.PropertyInfo.PropertyType == typeof(double))) { wdg = new DataSpinButton(-100000000, 100000000, 1, aArgs.PropertyName); } else if (aArgs.PropertyInfo.PropertyType == typeof(DateTime)) { wdg = new DataCalendar(aArgs.PropertyName); } else if (aArgs.PropertyInfo.PropertyType == typeof(Gdk.Pixbuf)) { wdg = new DataImage(aArgs.PropertyName); } else { wdg = new DataLabel(aArgs.PropertyName); } break; } return(wdg); }