/// <summary>
 /// Sets the interaction manager.
 /// </summary>
 /// <param name="interactionManager">The interaction manager.</param>
 public void SetInteractionManager(InteractionManager interactionManager)
 {
     if (interactionManager != null)
     {
         if (this.interactionManager != null)
         {
             try
             {
                 this.interactionManager.ButtonPressed -= new EventHandler<ButtonPressedEventArgs>(interactionManager_ButtonPressed);
                 this.interactionManager.ButtonReleased -= new EventHandler<ButtonReleasedEventArgs>(interactionManager_ButtonReleased);
                 this.interactionManager.GesturePerformed -= new EventHandler<GestureEventArgs>(interactionManager_GesturePerformed);
                 this.interactionManager.ButtonCombinationReleased -= new EventHandler<ButtonReleasedEventArgs>(interactionManager_ButtonCombinationReleased);
             }
             catch { }
         }
         this.interactionManager = interactionManager;
         this.interactionManager.ButtonPressed += new EventHandler<ButtonPressedEventArgs>(interactionManager_ButtonPressed);
         this.interactionManager.ButtonReleased += new EventHandler<ButtonReleasedEventArgs>(interactionManager_ButtonReleased);
         this.interactionManager.GesturePerformed += new EventHandler<GestureEventArgs>(interactionManager_GesturePerformed);
         this.interactionManager.ButtonCombinationReleased += new EventHandler<ButtonReleasedEventArgs>(interactionManager_ButtonCombinationReleased);
     }
 }
 /// <summary>
 /// Initializes the instance with the important global objects.
 /// </summary>
 /// <param name="interactionManager">The interaction manager.</param>
 /// <param name="windowManager">The window manager.</param>
 public void Initialize(InteractionManager interactionManager)
 {
     SetInteractionManager(interactionManager);
 }
        bool IInitialObjectReceiver.InitializeObjects(params object[] objs)
        {
            bool success = true;
            if (objs != null && objs.Length > 0)
            {
                unregisterToEvents();
                foreach (var item in objs)
                {
                    try
                    {
                        if (item != null)
                        {
                            if (item is IDisposable)
                            {
                                shutDowner.Add(item as IDisposable);
                            }

                            if (item is AudioRenderer)
                            {
                                audioRenderer = item as AudioRenderer;
                            }
                            else if (item is InteractionManager)
                            {
                                interactionManager = item as InteractionManager;
                            }
                            else if (item.GetType().FullName.Equals("BrailleIO.BrailleIOMediator")) // is BrailleIO.BrailleIOMediator)
                            {
                                io = item as BrailleIO.BrailleIOMediator;
                                if (io == null)
                                {
                                    throw new NullReferenceException(
                                        @"The referenced Type 'BrailleIO.BrailleIOMediator' seems to be the same but a type conversion wasn't possible. 
                                        This can be caused by adding the type defining reference (dll) twice to the project. 
                                        Build the extension without local copies of overhanded types.");
                                }
                                DebugMonitorTextRenderer dbmtr = new DebugMonitorTextRenderer(monitor, io);
                            }
                        }
                    }
                    catch
                    {
                        success = false;
                    }
                }
                registerToEvents();
            }
            return success;
        }