internal void RegisterForEventsFrom(WordNetBrowserWindow anotherWordNetBrowser)
        {
            anotherWordNetBrowser.SynsetDragStarted   += WordNetBrowser_SynsetDragStarted;
            anotherWordNetBrowser.SynsetDragCancelled += WordNetBrowser_SynsetDragCancelled;
            anotherWordNetBrowser.SynsetDropCompleted += WordNetBrowser_SynsetDropCompleted;

            anotherWordNetBrowser.WordSenseDragStarted   += WordNetBrowser_WordSenseDragStarted;
            anotherWordNetBrowser.WordSenseDragCancelled += WordNetBrowser_WordSenseDragCancelled;
            anotherWordNetBrowser.WordSenseDropCompleted += WordNetBrowser_WordSenseDropCompleted;

            anotherWordNetBrowser.EditingEnabledChanged += WordNetBrowser_EditingEnabledChanged;
        }
        private void NewWindowMenuItem_Click(object sender, RoutedEventArgs e)
        {
            WordNetBrowserWindow newWindow = new WordNetBrowserWindow();

            // Duplicate the external events handlers from this window to the new window.
            newWindow.SynsetDragStarted      += SynsetDragStarted;
            newWindow.SynsetDragCancelled    += SynsetDragCancelled;
            newWindow.SynsetDropCompleted    += SynsetDropCompleted;
            newWindow.WordSenseDragStarted   += WordSenseDragStarted;
            newWindow.WordSenseDragCancelled += WordSenseDragCancelled;
            newWindow.WordSenseDropCompleted += WordSenseDropCompleted;

            // Register to receive events from the new window
            RegisterForEventsFrom(newWindow);
            // Have the new window register to receive drag drop events from this window
            newWindow.RegisterForEventsFrom(this);

            newWindow.Show();
        }