protected override void ShowPreviewItems(ProgressState state) { m_bv.BrowseView.Vc.MultiColumnPreview = false; var itemsToChange = ItemsToChange(false); BulkEditItem bei = m_beItems[m_itemIndex]; var phonFeatEditor = bei.BulkEditControl as PhonologicalFeatureEditor; if (phonFeatEditor == null) { // User chose to remove the targeted feature bei.BulkEditControl.FakeDoit(itemsToChange, XMLViewsDataCache.ktagAlternateValue, XMLViewsDataCache.ktagItemEnabled, state); } else { if (!phonFeatEditor.SelectedItemIsFsFeatStruc) { // User chose one of the values of the targeted feature phonFeatEditor.FakeDoit(itemsToChange, XMLViewsDataCache.ktagAlternateValue, XMLViewsDataCache.ktagItemEnabled, state); } else { // User built a FsFeatStruc with the features and values to change. // This means we have to find the columns for each feature in the FsFeatStruc and // then show the change for that feature in that column. int selectedHvo = phonFeatEditor.SelectedHvo; string selectedLabel = phonFeatEditor.SelectedLabel; string[] featureValuePairs = phonFeatEditor.FeatureValuePairsInSelectedFeatStruc; var featureAbbreviations = featureValuePairs.Select(s => { int i = s.IndexOf(":"); return(s.Substring(0, i)); }); m_bv.BrowseView.Vc.MultiColumnPreview = true; for (int iColumn = 0; iColumn < m_beItems.Count(); iColumn++) { if (m_beItems[iColumn] == null) { continue; } var pfe = m_beItems[iColumn].BulkEditControl as PhonologicalFeatureEditor; if (pfe != null) { pfe.ClearPreviousPreviews(itemsToChange, XMLViewsDataCache.ktagAlternateValueMultiBase + iColumn + 1); if (featureAbbreviations.Contains(pfe.FeatDefnAbbr)) { int tempSelectedHvo = pfe.SelectedHvo; pfe.SelectedHvo = selectedHvo; string tempSelectedLabel = pfe.SelectedLabel; pfe.SelectedLabel = selectedLabel; pfe.FakeDoit(itemsToChange, XMLViewsDataCache.ktagAlternateValueMultiBase + iColumn + 1, XMLViewsDataCache.ktagItemEnabled, state); pfe.SelectedHvo = tempSelectedHvo; pfe.SelectedLabel = tempSelectedLabel; } } } } } }
protected override BulkEditItem MakeItem(XmlNode colSpec) { BulkEditItem bei = base.MakeItem(colSpec); if (bei == null) { return(null); } var besc = bei.BulkEditControl as PhonologicalFeatureEditor; if (besc != null) { besc.EnableTargetFeatureCombo += new EventHandler <TargetFeatureEventArgs>(BulkEditBarPhonologicalFeatures_EnableTargetFeatureCombo); } return(bei); }