private void OnEmptyTab() { #if APPCOMPAT _actionBar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.SelectedItem, BindingExtensions.NullValue); #else _actionBar.SetBindingMemberValue(AttachedMembers.ActionBar.SelectedItem, BindingExtensions.NullValue); #endif var value = ActionBarTemplate.GetTabContentId(_actionBar); if (value == null) { return; } _actionBar.ThemedContext.GetActivity()?.FindViewById <FrameLayout>(value.Value)?.RemoveAllViews(); }
public void OnTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { if (_cleared) { return; } var bar = (ActionBar)tab.GetBindingMemberValue(AttachedMembers.Object.Parent); var placeHolder = ActionBarTemplate.GetTabContentId(bar); var activity = bar.ThemedContext.GetActivity(); SetContent(tab, ft, placeHolder, activity, bar); //Set selected item data context or tab var selectedItem = bar.GetBindingMemberValue(ItemsSourceGeneratorBase.MemberDescriptor) == null ? tab : tab.DataContext(); #if APPCOMPAT bar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.SelectedItem, selectedItem); #else bar.SetBindingMemberValue(AttachedMembers.ActionBar.SelectedItem, selectedItem); #endif }
/// <summary> /// Perform any final cleanup before an activity is destroyed. /// </summary> public override void OnDestroy(Action baseOnDestroy) { Tracer.Info("OnDestroy activity({0})", Target); var handler = Destroyed; if (handler != null) { handler(Activity, EventArgs.Empty); } if (_bindings != null) { foreach (IDataBinding dataBinding in _bindings) { dataBinding.Dispose(); } _bindings = null; } MenuTemplate.Clear(_menu); #if !API8 ActionBarTemplate.Clear(Activity); #endif base.OnDestroy(baseOnDestroy); }
private static void ActivityViewOnDestroyed(Activity sender, EventArgs args) { ((IActivityView)sender).Mediator.Destroyed -= DestroyedHandler; ActionBarTemplate.Clear(sender); }
protected override void CreateChildControls() { Controls.Clear(); var effectiveActionRowTemplate = ActionRowTemplate ?? Page.LoadTemplate(DefaultActionRowPath); var effectiveFiltersTemplate = FiltersTemplate ?? Page.LoadTemplate(DefaultFilterControlsPath); var effectivePagingControlsTemplate = PagingControlsTemplate ?? Page.LoadTemplate(DefaultPagingControlsPath); // Add upper action row if (ActionBarTemplate != null || EffectiveLocaleSelectionEnabled) { var upperActionRow = new ActionRowContainer(EffectiveLocaleSelectionEnabled, ActionBarTemplate != null, EffectiveDisplayLocale); Controls.Add(upperActionRow); upperActionRow.CssClass = "listing-action-row listing-action-row-upper"; effectiveActionRowTemplate.InstantiateIn(upperActionRow); var upperActionBarPlaceholder = upperActionRow .FindControlRecursive("ActionBarPlaceholder") .FirstOrDefault(); if (upperActionBarPlaceholder != null && ActionBarTemplate != null) { ActionBarTemplate.InstantiateIn(upperActionBarPlaceholder); } } // Add filters if (Filters.Any() || ExpandableFilters.Any()) { var filterContainer = new Panel(); Controls.Add(filterContainer); filterContainer.CssClass = "listing-filters"; effectiveFiltersTemplate.InstantiateIn(filterContainer); // Update filter contexts int controlIndex = 0; var displayLocaleParameter = new Parameter(QueryBuilder.DisplayLocaleParameterName, DbType.String, EffectiveDisplayLocale); var currentCustomerLocaleParameter = new Parameter(QueryBuilder.CurrentCustomerLocaleParameterName, DbType.String, CurrentCustomerLocale); foreach (var filterControl in _Filters ?? Enumerable.Empty <FilterControl>()) { filterControl.SetContext( new FilterControlContext( displayLocaleParameter, currentCustomerLocaleParameter, controlIndex++)); } foreach (var filterControl in _ExpandableFilters ?? Enumerable.Empty <FilterControl>()) { filterControl.SetContext( new FilterControlContext( displayLocaleParameter, currentCustomerLocaleParameter, controlIndex++)); } // Find control placeholders var filterControlsPlaceholder = filterContainer .FindControlRecursive("FilterControlsPlaceholder", 64) .FirstOrDefault(); var expandableFilterControlsPlaceholder = filterContainer .FindControlRecursive("ExpandableFilterControlsPlaceholder", 64) .FirstOrDefault(); // Group filters for each placeholder var defaultFilterActionsTemplate = Page.LoadTemplate(DefaultFilterActionsPath); var upperFilterActionsContainer = new PlaceHolder(); var lowerFilterActionsContainer = new PlaceHolder(); defaultFilterActionsTemplate.InstantiateIn(upperFilterActionsContainer); defaultFilterActionsTemplate.InstantiateIn(lowerFilterActionsContainer); var normalFilters = (expandableFilterControlsPlaceholder == null ? (_Filters ?? Enumerable.Empty <Control>()).Concat(_ExpandableFilters) : (_Filters ?? Enumerable.Empty <Control>())) .Concat(new Control[] { upperFilterActionsContainer }); var expandableFilters = expandableFilterControlsPlaceholder == null || _ExpandableFilters == null ? Enumerable.Empty <Control>() : _ExpandableFilters.Concat(new Control[] { lowerFilterActionsContainer }); // Apply filters to placeholders if (filterControlsPlaceholder != null) { PopulateContainerWithFilterControls(normalFilters, filterControlsPlaceholder); } if (expandableFilterControlsPlaceholder != null) { PopulateContainerWithFilterControls(expandableFilters, expandableFilterControlsPlaceholder); } } // Initialize filter query var filterClauses = BuildFilterClauses( (_Filters ?? Enumerable.Empty <FilterControl>()) .Concat(_ExpandableFilters ?? Enumerable.Empty <FilterControl>())); var parameterizedQuery = _QueryBuilder.BuildDataSourceQuery( templates: _QueryBuilderTemplates, queryContext: new QueryBuilder.QueryContext(SqlQuery, EffectiveSortExpression, EffectiveSortDirection, EffectivePageStart, EffectivePageSize, EffectiveDisplayLocale, CurrentCustomerLocale), filterClauses: filterClauses); _SqlDataSource.SelectParameters.Clear(); foreach (var parameter in parameterizedQuery.Parameters) { _SqlDataSource.SelectParameters.Add(parameter); } foreach (Parameter parameter in SqlParameters) { _SqlDataSource.SelectParameters.Add(parameter); } // Setup SqlDataSource _SqlDataSource.ID = "FilteredListingDataSource"; _SqlDataSource.ConnectionString = DB.GetDBConn(); _SqlDataSource.ProviderName = "System.Data.SqlClient"; _SqlDataSource.DataSourceMode = SqlDataSourceMode.DataSet; _SqlDataSource.SelectCommandType = SqlDataSourceCommandType.Text; _SqlDataSource.SelectCommand = parameterizedQuery.Sql; _SqlDataSource.CancelSelectOnNullParameter = false; _SqlDataSource.EnableViewState = false; _SqlDataSource.Selecting += SqlDataSource_Selecting; _SqlDataSource.Selected += SqlDataSource_Selected; Controls.Add(_SqlDataSource); // Add upper paging controls _UpperPagingControls.Controls.Clear(); Controls.Add(_UpperPagingControls); _UpperPagingControls.CssClass = "listing-paging listing-paging-upper"; effectivePagingControlsTemplate.InstantiateIn(_UpperPagingControls); // Add listing template var listing = new NamingContainerPanel(); Controls.Add(listing); listing.CssClass = "listing"; if (ListingTemplate != null) { ListingTemplate.InstantiateIn(listing); if (ListingTemplateInstantiated != null) { ListingTemplateInstantiated(this, EventArgs.Empty); } } // Add lower paging controls _LowerPagingControls.Controls.Clear(); Controls.Add(_LowerPagingControls); _LowerPagingControls.CssClass = "listing-paging listing-paging-lower"; effectivePagingControlsTemplate.InstantiateIn(_LowerPagingControls); // Add lower action bar if (ActionBarTemplate != null || EffectiveLocaleSelectionEnabled) { var lowerActionRow = new ActionRowContainer(EffectiveLocaleSelectionEnabled, ActionBarTemplate != null, EffectiveDisplayLocale); Controls.Add(lowerActionRow); lowerActionRow.CssClass = "listing-action-row listing-action-row-lower"; effectiveActionRowTemplate.InstantiateIn(lowerActionRow); var lowerActionBarPlaceholder = lowerActionRow .FindControlRecursive("ActionBarPlaceholder") .FirstOrDefault(); if (lowerActionBarPlaceholder != null && ActionBarTemplate != null) { ActionBarTemplate.InstantiateIn(lowerActionBarPlaceholder); } } ClearChildViewState(); }