public void OpenInfoModal()
        {
            CGPoint orgPoint = Utility.GetModalPanelLocation();

            using (NSAutoreleasePool pool = new NSAutoreleasePool()) {
                using (var infoPanelController = new PublicationInfoPanelController(orgPoint)) {
                    infoPanelController.BookInfo = PublicationsDataManager.SharedInstance.CurrentPubliction;
                    infoPanelController.InitializeInfoView();

                    var infoPanel = infoPanelController.Window;
                    infoPanel.MakeFirstResponder(null);

                    NSApplication NSApp = NSApplication.SharedApplication;

                    infoPanel.WindowShouldClose += (t) => true;
                    infoPanel.WillClose         += delegate(object asender, EventArgs e) {
                        NSApp.StopModal();
                    };

                    NSApplication.SharedApplication.RunModalForWindow(infoPanel);
                    infoPanelController.Window.OrderOut(null);
                    infoPanelController.Dispose();

                    AddInfoUpdateState();
                }
            }
        }