private void OnTargetComboItemChanged(FieldComboItem selectedItem) { if (TargetComboSelectedIndexChanged == null) return; m_expectedListItemsClassId = GetExpectedListItemsClassFromSelectedItem(selectedItem); if (m_expectedListItemsClassId != 0) { TargetColumnChangedEventArgs args = new TargetColumnChangedEventArgs(new TargetFieldItem(selectedItem.ToString(), selectedItem.ColumnIndex, m_expectedListItemsClassId)); m_bv.BulkEditTargetComboSelectedIndexChanged(args); // may set ForceReload flag on args. if (TargetComboSelectedIndexChanged != null) TargetComboSelectedIndexChanged(this, args); } }
private void OnTargetComboItemChanged(FieldComboItem selectedItem) { if (TargetComboSelectedIndexChanged == null) return; int flid; m_expectedListItemsClassId = GetExpectedListItemsClassAndTargetFieldFromSelectedItem(selectedItem, out flid); if (m_expectedListItemsClassId != 0) { using (var targetFieldItem = new TargetFieldItem(selectedItem.ToString(), selectedItem.ColumnIndex, m_expectedListItemsClassId, flid)) { var args = new TargetColumnChangedEventArgs(targetFieldItem); //REFACTOR: the BrowseView should not know about BulkEdit - They appear to be too highly coupled. m_bv.BulkEditTargetComboSelectedIndexChanged(args); // may set ForceReload flag on args. if (TargetComboSelectedIndexChanged != null) TargetComboSelectedIndexChanged(this, args); } } }
private void TargetColumnChanged(object sender, TargetColumnChangedEventArgs e) { if (e.ExpectedListItemsClass == 0) return; // no target column selected, so it shouldn't matter what the class of the clerk's list items are. using (new WaitCursorHelper(this)) { // we're changing the class of our list items. // use ListUpdateHelper to suspend reloading the list until we've changed the class // and recomputed the columns. Otherwise, we'll try to reload the list and redraw the display // with columns that may not have all their parts in place (e.g. for generated custom fields) using (new RecordClerk.ListUpdateHelper(ExistingClerk)) { // change the list items class, but don't do the reload && refresh display // until after we've recomputed our columns to allow regenerating custom field parts // for that new class. ExistingClerk.OnChangeListItemsClass(e.ExpectedListItemsClass, e.ForceReload); CheckExpectedListItemsClassInSync(); // Recompute the possible columns, so the layout/parts system // can generate parts for custom fields based upon a new root object class. // this should not actually change the column specs themselves since // they refer to those parts through "layout" references. m_browseViewer.BrowseView.Vc.ComputePossibleColumns(); } } }