private SelectBox GetSelectBox( FilterHtmlGenerator.Filter filterData, Store storeFilter, bool isRangeControlId, bool isAdditionalFieldSet, bool isHideParentFieldSet) { var selectBox = new SelectBox(StandartConfigSelectBoxFilter()) { ID = RegistrationControlToRepository(UniquePrefixes.SelectBoxFilterOperations, filterData, isAdditionalFieldSet, isHideParentFieldSet), ClientIDMode = ClientIDMode.Static, }; if (filterData.Type == FilterHtmlGenerator.FilterType.Boolean) { selectBox.Triggers.Add(new FieldTrigger() { Icon = TriggerIcon.Clear, Qtip = Resources.SRemoveSelected }); selectBox.Listeners.TriggerClick.Handler = @" this.clearValue();"; } selectBox.Store.Add(storeFilter); SetListenersSelectBox(filterData, isRangeControlId, selectBox); return(selectBox); }
private void SetListeners(FilterHtmlGenerator.Filter filterData, DateField dateField, bool isRangeControl) { if (!isRangeControl && !string.IsNullOrEmpty(filterData.OnChangedValue)) { dateField.Listeners.Change.Handler += filterData.OnChangedValue; } }
private AbstractProxy GetProxyLookup(FilterHtmlGenerator.Filter filterData) { // todo: если метод будет расти, рефакторить его. const string url = "/AutoCompleteHandler.ashx"; const string dataSourceType = AutoCompleteHandler.DataSourceType; const string suffixTypeName = "JournalDataSourceView"; const string localizationParameterName = "isKz"; const string jsonReaderRoot = "Data"; const string jsonReaderTotalProperty = "Total"; const string jsonReaderIdProperty = "jReader"; const string pointSeparator = "."; const string commoSeparator = ", "; var proxyLookup = new AjaxProxy { Url = url }; var sourceParameter = new Parameter { Name = dataSourceType, Value = new StringBuilder().Append(filterData.ProjectName) .Append(pointSeparator) .Append(filterData.TableName) .Append(suffixTypeName) .ToString() }; var localizationParameter = new Parameter { Name = localizationParameterName, Value = LocalizationHelper.IsCultureKZ.ToString() }; var reader = new JsonReader { Root = jsonReaderRoot, TotalProperty = jsonReaderTotalProperty, IDProperty = jsonReaderIdProperty }; proxyLookup.ActionMethods.Read = HttpMethod.POST; proxyLookup.Reader.Add(reader); proxyLookup.ExtraParams.Add(sourceParameter); proxyLookup.ExtraParams.Add(localizationParameter); if (filterData.ComboBoxView != null) { proxyLookup.ExtraParams.Add( new Parameter { Name = AutoCompleteHandler.ComboBoxView, Value = filterData.ComboBoxView.GetType().FullName, }); } return(proxyLookup); }
private Store GetStore(FilterHtmlGenerator.Filter filterData) { var listConfig = filterData.ComboBoxView as IListConfig; var store = new Store { ID = RegistrationControlToRepository(UniquePrefixes.StoreFilterValues, filterData), ClientIDMode = ClientIDMode.Static, }; store.Model.Add(GetModel(StandartModelFieldsItems(filterData))); store.InitializeListConfig(listConfig); if (filterData.Lookup) { store.Proxy.Add(GetProxyLookup(filterData)); store.Listeners.BeforeLoad.Handler += string.Format(@"store.getProxy().extraParams.parameters = GetLookupFiltersByValues(App.{0}.tag.browseUrl);", GetControlId(UniquePrefixes.ComboBoxFilterValues, filterData.FilterName)); } else { store.DataSource = GetMultiComboBoxItems(filterData); store.AutoDataBind = true; } return(store); }
private DateField GetDateFiledItem(FilterHtmlGenerator.Filter filterData, bool isRangeControl) { var config = StandartConfigDateField(isRangeControl); var maxDate = (DateTime?)filterData.MaxValue; if (maxDate != null) { config.MaxDate = maxDate.Value; } var dateField = new DateField(config) { ID = RegistrationControlToRepository(isRangeControl ? UniquePrefixes.EndDateField : UniquePrefixes.BeginDateField, filterData, isRangeControl), ClientIDMode = ClientIDMode.Static, }; dateField.CustomConfig.Add(new ConfigItem("rememberMaxValue", maxDate?.ToShortDateString() ?? "", ParameterMode.Value)); dateField.CustomConfig.Add(new ConfigItem("maxText", Resources.SMaxDateText, ParameterMode.Value)); dateField.CustomConfig.Add(new ConfigItem("minText", Resources.SMinDateText, ParameterMode.Value)); return(dateField); }
private NumberField GetNumberFieldItem(FilterHtmlGenerator.Filter filterData, bool isRangeControl) { var config = StandartConfigNumberField(isRangeControl); var maxValue = filterData.MaxValue == null ? (double?)null : Convert.ToDouble(filterData.MaxValue); if (maxValue != null) { config.MaxValue = maxValue.Value; } var numberField = new NumberField(config) { ID = RegistrationControlToRepository( isRangeControl ? UniquePrefixes.EndNumberField : UniquePrefixes.BeginNumberField, filterData, isRangeControl), ClientIDMode = ClientIDMode.Static, DecimalPrecision = filterData.DecimalPrecision }; numberField.CustomConfig.Add(new ConfigItem("rememberMaxValue", maxValue?.ToString() ?? "", ParameterMode.Value)); return(numberField); }
private static Store.Config StandartConfigStoreFilter(FilterHtmlGenerator.Filter filterData) { return(new Store.Config { DataSource = GetOperationsFilter(filterData), AutoDataBind = true, }); }
private void SetListeners(FilterHtmlGenerator.Filter filterData, PickerFieldListeners listeners) { listeners.Select.Handler = FilterJs.JsCallShowClearTrigger; listeners.Change.Handler = FilterJs.JsSetContextToolTipByChagneValueHandler + filterData.OnChangedValue; listeners.TriggerClick.Handler = FilterJs.JsCallSelectTriggerClick; listeners.BoxReady.Handler = FilterJs.JsCallClearTriggerHide; }
private void SetListenersSelectBox( FilterHtmlGenerator.Filter filterData, bool isRangeControlId, SelectBox selectBox) { if (isRangeControlId) { selectBox.Listeners.Change.Handler = FilterJs.JsCallToggleVisibleSecondRangeControl; } }
private TextField GetTextFieldItem(FilterHtmlGenerator.Filter filterData) { var textField = new TextField(StandartConfigTextFieldItem()) { ID = RegistrationControlToRepository(UniquePrefixes.TextFieldFilterValues, filterData), ClientIDMode = ClientIDMode.Static, }; SetListeners(textField); return(textField); }
private Store GetStoreFilter(FilterHtmlGenerator.Filter filterData) { var store = new Store(StandartConfigStoreFilter(filterData)) { ID = RegistrationControlToRepository(UniquePrefixes.StoreFilterOperations, filterData), ClientIDMode = ClientIDMode.Static, }; store.Model.Add(GetModelStoreFilter()); return(store); }
protected FieldContainer GetFieldContainerFilter( FilterHtmlGenerator.Filter filterData, bool isAdditionalFieldSet, bool isHideParentFieldSet, bool isRangeControlId = false) { var storeFilter = GetStoreFilter(filterData); var selectBoxFilter = GetSelectBox(filterData, storeFilter, isRangeControlId, isAdditionalFieldSet, isHideParentFieldSet); return(GetFieldContainer(filterData, selectBoxFilter)); }
private bool IsHideParentFieldSet(FilterHtmlGenerator.Filter filterData) { var childs = filterData.Children.Where(f => f.Visible); var enumerable = childs as IList <FilterHtmlGenerator.Filter> ?? childs.ToList(); if (enumerable.Any() && enumerable.All(s => s.Type == FilterHtmlGenerator.FilterType.Group)) { return(IsAdditionalFieldSet(enumerable)); } return(false); }
protected string RegistrationControlToRepository( UniquePrefixes prefix, FilterHtmlGenerator.Filter filterData, bool isAdditionalFieldSet = false, bool isHideParentFieldSet = false, bool isRangeControl = false) { var controlId = GetControlId(prefix, filterData.FilterName); PackingJsMember(prefix, filterData, controlId, isRangeControl, isAdditionalFieldSet, isHideParentFieldSet); return(controlId); }
private FieldContainer GetFieldContainer( FilterHtmlGenerator.Filter filterData, SelectBox selectBox) { var fieldContainer = new FieldContainer(StandartConfigFilterFieldContainer(filterData)) { ID = RegistrationControlToRepository(UniquePrefixes.FieldContainerCommon, filterData), ClientIDMode = ClientIDMode.Static, }; fieldContainer.Items.Add(selectBox); return(fieldContainer); }
private AbstractComponent GetComboBoxValues( FilterHtmlGenerator.Filter filterData, out PickerFieldListeners listeners) { var comboBox = new ComboBox(StandartConfigComboBoxItems()) { ID = RegistrationControlToRepository(UniquePrefixes.ComboBoxFilterValues, filterData), ClientIDMode = ClientIDMode.Static, }; listeners = comboBox.Listeners; return(comboBox); }
private AbstractComponent GetFilterControlsByType( FilterHtmlGenerator.Filter filterData, IList <string> clientRepositoryJs, bool isAdditionalFieldSet, bool?isHideParentFieldSet, out string controlMemberJs) { var hideParentGroupFieldSet = isHideParentFieldSet.HasValue && isHideParentFieldSet.Value; switch (filterData.Type) { case FilterHtmlGenerator.FilterType.Group: { //todo: не протестированно -> не найден прецедент. controlMemberJs = null; return(new FilterControlFieldSet().GetFilledFieldSet( SortFilters(filterData.Children.Where(f => f.Visible)), clientRepositoryJs, false, hideParentGroupFieldSet || IsHideParentFieldSet(filterData), filterData.Header)); } case FilterHtmlGenerator.FilterType.Reference: { return(new FilterControlComboBox().GetControl(filterData, isAdditionalFieldSet, hideParentGroupFieldSet, out controlMemberJs)); } case FilterHtmlGenerator.FilterType.Numeric: { if (filterData.IsDateTime) { return(new FilterControlDateField().GetControl(filterData, isAdditionalFieldSet, hideParentGroupFieldSet, out controlMemberJs)); } return(new FilterControlNumberField().GetControl(filterData, isAdditionalFieldSet, hideParentGroupFieldSet, out controlMemberJs)); } case FilterHtmlGenerator.FilterType.Boolean: { return(new FilterControlBoolean().GetControl(filterData, isAdditionalFieldSet, hideParentGroupFieldSet, out controlMemberJs)); } case FilterHtmlGenerator.FilterType.Text: case FilterHtmlGenerator.FilterType.FullTextSearch: { return(new FilterControlTextField().GetControl(filterData, isAdditionalFieldSet, hideParentGroupFieldSet, out controlMemberJs)); } } controlMemberJs = String.Empty; return(null); }
protected static string GetSerializeBrowseFilterParameters(FilterHtmlGenerator.Filter filterData) { string serializedData = null; if (filterData.BrowseFilterParameters != null) { var triplet = new Triplet(filterData.BrowseFilterParameters.ClientControlParameters, filterData.BrowseFilterParameters.ClientValueParameters, string.Empty); serializedData = new JavaScriptSerializer().Serialize(triplet); } return(serializedData); }
private void PackingJsMember( UniquePrefixes prefix, FilterHtmlGenerator.Filter filterData, string controlId, bool isRangeControl, bool isAdditionalFieldSet, bool isHideParentFieldSet) { var typePrefix = prefix.GetType(); var fieledInfo = typePrefix.GetField(prefix.ToString()); var filterAttributes = fieledInfo.GetCustomAttributes(false); foreach (var typeFilterAttribute in filterAttributes.Select(filterAttribute => filterAttribute.GetType())) { if (typeFilterAttribute == typeof(FilterTypeIdAttribute)) { AddItemToJsMember(JsMemberItemTypes.FilterTypeId, controlId); AddItemToJsMember(JsMemberItemTypes.FilterName, filterData.FilterName); AddItemToJsMember(JsMemberItemTypes.DefaultFilterType, filterData.DefaultFilterType == null ? null : filterData.DefaultFilterType.ToString()); AddItemToJsMember(JsMemberItemTypes.IsHiddenParentFieldSet, isAdditionalFieldSet.ToString()); AddItemToJsMember(JsMemberItemTypes.IsMain, filterData.MainGroup.ToString()); AddItemToJsMember(JsMemberItemTypes.RequiredFilter, filterData.RequiredFilter); AddItemToJsMember(JsMemberItemTypes.DependedFilters, filterData.DependedFilters); AddItemToJsHandler(JsMemberItemTypes.GetDependedVisible, filterData.DependedHandler, "values"); AddItemToJsMember(JsMemberItemTypes.IsHideParentGroupFieldSet, isHideParentFieldSet.ToString()); } if (typeFilterAttribute == typeof(RangeFilterValueIdAttribute)) { AddItemToJsMember(JsMemberItemTypes.SecondFilterValueId, controlId); } if (typeFilterAttribute == typeof(FilterValueIdAttribute)) { AddItemToJsMember(JsMemberItemTypes.FirstFilterValueId, controlId); if (!isRangeControl) { AddItemToJsMember(JsMemberItemTypes.SecondFilterValueId, string.Empty); } } if (typeFilterAttribute == typeof(CommonContainerAttribute)) { SetFinalParthToJsMember(); } } }
private static FieldContainer.Config StandartConfigFilterFieldContainer( FilterHtmlGenerator.Filter filterData) { var fieldContainerConfig = new FieldContainer.Config { FieldLabel = filterData.Header, LabelAlign = LabelAlign.Right, LabelWidth = 146, Layout = "HBoxLayout", MarginSpec = "5 20 5 5", Flex = 1, LabelStyle = "white-space: nowrap !important; text-overflow: ellipsis; overflow: hidden;", }; return(fieldContainerConfig); }
private AbstractComponent GetMultiComboBoxValues(FilterHtmlGenerator.Filter filterData, out PickerFieldListeners listeners) { var multiComboBox = new MultiCombo(StandartConfigMultiComboBoxItems()) { ID = RegistrationControlToRepository(UniquePrefixes.MultiBoxFilterValues, filterData), ClientIDMode = ClientIDMode.Static, }; multiComboBox.ListConfig.Listeners.ItemMouseLeave.Handler = string.Format("{0}.itemLeave = index; window.setTimeout(function() {{ if ({0}.itemLeave == index) {0}.collapse(); }}, 400);", multiComboBox.ClientID); multiComboBox.ListConfig.Listeners.ItemMouseEnter.Handler = string.Format("{0}.itemLeave = -1;", multiComboBox.ClientID); if (!filterData.IsMultipleSelect) { multiComboBox.Listeners.BeforeSelect.Handler = "item.clearValue(); window.setTimeout(function() {item.collapse(); }, 100);"; } listeners = multiComboBox.Listeners; return(multiComboBox); }
public FieldContainer GetControl( FilterHtmlGenerator.Filter filterData, bool isAdditionalFieldSet, bool isHideParentFieldSet, out string controlMemberJs) { var fieldContainer = GetFieldContainerFilter(filterData, isAdditionalFieldSet, isHideParentFieldSet); controlMemberJs = ClientRepositoryJsMember; if (!string.IsNullOrEmpty(filterData.OnChangedValue)) { var box = fieldContainer.Items.OfType <SelectBox>().First(); box.Listeners.Change.Handler += filterData.OnChangedValue; } return(fieldContainer); }
private void SetSelectConfiguration( FilterHtmlGenerator.Filter filterData, ComboBoxBase selectBox, PickerFieldListeners listeners) { var store = GetStore(filterData); selectBox.Store.Add(store); SetTriggersToSelectBox(selectBox.Triggers, filterData.Lookup); SetListeners(filterData, listeners); selectBox.Tag = new { browseUrl = GetSerializeBrowseFilterParameters(filterData), tableName = filterData.TableName, header = filterData.TableHeader }; }
private IEnumerable <ModelField> StandartModelFieldsItems(FilterHtmlGenerator.Filter filterData) { var modelFieldId = new ModelField("id", ModelFieldType.String) { ServerMapping = string.IsNullOrEmpty(filterData.SelectKeyValueColumn) ? "Value" : "Item." + filterData.SelectKeyValueColumn }; return(new List <ModelField> { modelFieldId, new ModelField("RowName", ModelFieldType.String) { ServerMapping = "Name" } }); }
public FieldContainer GetControl( FilterHtmlGenerator.Filter filterData, bool isAdditionalFieldSet, bool isHideParentFieldSet, out string controlMemberJs) { const bool isRangeControl = true; var dateFieldBegin = GetDateFiledItem(filterData, !isRangeControl); var dateFieldEnd = GetDateFiledItem(filterData, isRangeControl); var fieldContainer = GetFieldContainerFilter(filterData, isAdditionalFieldSet, isHideParentFieldSet, isRangeControl); SetListeners(filterData, dateFieldBegin, !isRangeControl); SetListeners(filterData, dateFieldEnd, isRangeControl); new ExtNetRangeControlsValidator().CompareValidator(dateFieldBegin, dateFieldEnd); fieldContainer.Items.Add(dateFieldBegin); fieldContainer.Items.Add(dateFieldEnd); controlMemberJs = ClientRepositoryJsMember; return(fieldContainer); }
internal FieldContainer GetControl( FilterHtmlGenerator.Filter filterData, bool isAdditionalFieldSet, bool isHideParentFieldSet, out string controlMemberJs) { var textField = GetTextFieldItem(filterData); var fieldContainer = GetFieldContainerFilter(filterData, isAdditionalFieldSet, isHideParentFieldSet); fieldContainer.Items.Add(textField); if (!string.IsNullOrEmpty(filterData.OnChangedValue)) { textField.Listeners.Change.Handler += filterData.OnChangedValue; } controlMemberJs = ClientRepositoryJsMember; return(fieldContainer); }
protected static object GetMultiComboBoxItems(FilterHtmlGenerator.Filter filterData) { var view = filterData.DataSource != null ? filterData.DataSource.GetView(filterData.TableName) : filterData.GetDataSourceView(); if (view == null) { return(null); } var dataSourceSelectArguments = new DataSourceSelectArguments { StartRowIndex = 0, MaximumRows = 100 }; IEnumerable listValues = null; view.Select(dataSourceSelectArguments, r => listValues = r); return(listValues.Cast <object>().ToArray()); }
internal FieldContainer GetControl( FilterHtmlGenerator.Filter filterData, bool isAdditionalFieldSet, bool isHideParentFieldSet, out string controlMemberJs) { PickerFieldListeners listeners; var selectBox = (ComboBoxBase)(filterData.Lookup ? GetComboBoxValues(filterData, out listeners) : GetMultiComboBoxValues(filterData, out listeners)); var listConfig = filterData.ComboBoxView as IListConfig; selectBox.InitializeListConfig(listConfig); SetSelectConfiguration(filterData, selectBox, listeners); var fieldContainer = GetFieldContainerFilter(filterData, isAdditionalFieldSet, isHideParentFieldSet); fieldContainer.Items.Add(selectBox); controlMemberJs = ClientRepositoryJsMember; return(fieldContainer); }
private static IEnumerable GetOperationsFilter(FilterHtmlGenerator.Filter filterData) { IEnumerable <KeyValuePair <object, object> > list = new List <KeyValuePair <object, object> >(); switch (filterData.Type) { case FilterHtmlGenerator.FilterType.Reference: { list = filterData.FilterByStartsWithCode ? InitializerSection.StaticFilterNamesResources .ReferenceListWithTextFilterForCodeTypes : InitializerSection.StaticFilterNamesResources.ReferencesFilterTypes; var bfilter = filterData as BaseFilterParameter; if (bfilter != null && bfilter.OTextValueExpressionRu == null) { list = list.Where(r => !((string)r.Key).EndsWith("ByRef")).ToList(); } break; } case FilterHtmlGenerator.FilterType.Numeric: { list = filterData.IsDateTime ? InitializerSection.StaticFilterNamesResources.DatetimeFilterTypes : InitializerSection.StaticFilterNamesResources.NumericFilterTypes; break; } case FilterHtmlGenerator.FilterType.Boolean: { var filterList = new List <KeyValuePair <object, object> >(); foreach ( var referenceFilterType in InitializerSection.StaticFilterNamesResources.ReferenceFilterTypes) { if (referenceFilterType.Key.Equals("Equals")) { filterList.Add(new KeyValuePair <object, object>("Equals", filterData.TrueBooleanText)); } else if (referenceFilterType.Key.Equals("NotEquals")) { filterList.Add(new KeyValuePair <object, object>("NotEquals", filterData.FalseBooleanText)); } else { filterList.Add(referenceFilterType); } } list = filterList; break; } case FilterHtmlGenerator.FilterType.Text: { list = InitializerSection.StaticFilterNamesResources.TextFilterTypes; break; } case FilterHtmlGenerator.FilterType.FullTextSearch: { var filterList = new List <KeyValuePair <object, object> >(); filterList.Add(new KeyValuePair <object, object>(DefaultFilters.TextFilter.Contains.ToString(), InitializerSection.StaticFilterNamesResources.SContains)); list = filterList; break; } } if (filterData.AllowedFilterTypes != null) { list = list.Where(r => filterData.AllowedFilterTypes.Contains(r.Key)); var add = filterData.AllowedFilterTypes.Where(r => list.All(f => (string)f.Key != r)); var newList = list.ToList(); foreach (var item in add) { var referenceType = (DefaultFilters.ReferenceFilter)Enum.Parse(typeof(DefaultFilters.ReferenceFilter), item); switch (referenceType) { case DefaultFilters.ReferenceFilter.MoreOrEqual: newList.Add(new KeyValuePair <object, object>(item, InitializerSection.StaticFilterNamesResources.SMore)); break; case DefaultFilters.ReferenceFilter.LessOrEqual: newList.Add(new KeyValuePair <object, object>(item, InitializerSection.StaticFilterNamesResources.SLess)); break; default: throw new ArgumentOutOfRangeException(); } } list = newList; } return(ConvertToObjectsArray(list)); }