private void m_PhonFeaturePopupTreeManager_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
// Arrange to turn all relevant items blue.
// Remember which item was selected so we can later 'doit'.
if (e.Node == null)
{
SelectedHvo = 0;
SelectedLabel = "";
}
else
{
int hvo = ((HvoTreeNode) e.Node).Hvo;
if (hvo == PhonologicalFeaturePopupTreeManager.kRemoveThisFeature)
{
var ptm = sender as PhonologicalFeaturePopupTreeManager;
if (ptm != null)
{
SelectedHvo = ptm.ClosedFeature.Hvo;
SelectedLabel = FdoUiStrings.ksRemoveThisFeature;
if (EnableTargetFeatureCombo != null)
EnableTargetFeatureCombo(this, new TargetFeatureEventArgs(true));
}
}
else
{
var obj = m_cache.ServiceLocator.GetInstance<ICmObjectRepository>().GetObject(hvo);
if (obj is IFsFeatStruc)
{
SelectedHvo = hvo;
SelectedLabel = e.Node.Text;
if (EnableTargetFeatureCombo != null)
// since we're using the phonological feature chooser, disable the
// Target Feature combo (it's no longer relevant)
EnableTargetFeatureCombo(this, new TargetFeatureEventArgs(false));
}
else if (obj is IFsSymFeatVal)
{
SelectedHvo = hvo;
SelectedLabel = e.Node.Text;
if (EnableTargetFeatureCombo != null)
EnableTargetFeatureCombo(this, new TargetFeatureEventArgs(true));
}
else
{
SelectedHvo = 0;
SelectedLabel = "";
m_tree.Text = "";
if (EnableTargetFeatureCombo != null)
EnableTargetFeatureCombo(this, new TargetFeatureEventArgs(true));
}
}
}
// Tell the parent control that we may have changed the selected item so it can
// enable or disable the Apply and Preview buttons based on the selection.
if (ValueChanged != null)
ValueChanged(this, new FwObjectSelectionEventArgs(SelectedHvo));
}