/// <summary>The user wants to browse WordNet synsets.</summary> private void BrowseWordNetMenuItem_Click(object sender, RoutedEventArgs e) { WordNetBrowserWindow wordNetBrowser = new WordNetBrowserWindow(); wordNetBrowser.SynsetDragStarted += TreeEditor.OnSynsetDragStarted; wordNetBrowser.SynsetDragCancelled += TreeEditor.OnSynsetDragCancelled; wordNetBrowser.SynsetDropCompleted += TreeEditor.OnSynsetDropCompleted; wordNetBrowser.AddDroppedWordConverter(e => { IElementTreeNode droppedNode = null; // We could get a dropped IElementTree node in one of two forms: // 1. It's in the IDataObject as an IElementTreeNode, ready to use; or // 2. It's in the IDataObject as a Task<ElementBuilder> that we can run to get the IElementTreeNode if (e.Data.GetDataPresent(typeof(IElementTreeNode))) { droppedNode = (IElementTreeNode)e.Data.GetData(typeof(IElementTreeNode)); } else if (e.Data.GetDataPresent(typeof(Task))) { Task <IElementTreeNode> getNodeTask = (Task <IElementTreeNode>)e.Data.GetData(typeof(Task)); droppedNode = getNodeTask.Result; } return((droppedNode is WordElementBuilder wordBuilder) ? new WordSpecification(wordBuilder.WordSource.DefaultWord, wordBuilder switch { NounBuilder nounBuilder => WordNetData.PartOfSpeech.Noun, VerbBuilder verbBuilder => WordNetData.PartOfSpeech.Verb, AdjectiveBuilder adjectiveBuilder => WordNetData.PartOfSpeech.Adjective, AdverbBuilder adverbBuilder => WordNetData.PartOfSpeech.Adverb, _ => WordNetData.PartOfSpeech.Unspecified }) : null); });
public override void Apply() { switch (Dependent) { case WhAdverbBuilder whAdverbDependent: break; case AdverbBuilder adverbDependent: switch (Governor) { // The AdjectiveBuilder case checks for a condition where the CoreNLP dependency indicates that Dependent modifies an adjective, but that adjective is the // head of a phrase and is modified by a comparative adverb. For SimpleNLG we represent this comparative adverb as a phrase that's modified by Dependent. case AdjectiveBuilder adjectiveGovernor: AdverbBuilder interveningComparative = InterveningComparativeAdverb; if (interveningComparative != null) { adverbDependent.Modify(interveningComparative); } else { adverbDependent.Modify(adjectiveGovernor); } break; case AdverbBuilder adverbGovernor: adverbDependent.Modify(adverbGovernor); break; case VerbBuilder verbGovernor: adverbDependent.Modify(verbGovernor); break; case NounBuilder nounGovernor: AdjectiveBuilder interveningAdjective = InterveningAdjective; if (interveningAdjective != null) { adverbDependent.Modify(interveningAdjective); } break; default: break; } break; default: break; } }