Beispiel #1
0
 public NetBibleFootnoteTooltip(SWMgr manager)
 {
     _manager = manager;
     InitializeComponent();
 }
        protected void InitializeSword()
        {
            // Initialize Module Variables
            filterManager = new MarkupFilterMgr((char)Sword.FMT_HTMLHREF, (char)Sword.ENC_HTML);

            /* NOTE: GC.SuppressFinalize(filterManager);
             *  This must be placed here so the garbage collector (GC) doesn't try to clean up
             * something that was already cleaned up.  If this is not left in an error will
             * occur when the application closes.  This happens because when the SWMgr is
             * cleaned by the GC it cleans its own filter and removes it from memory.  When
             * the GC then tries to clean up the filterManager object it doesn't really
             * exist in memory anymore and therefore it throws an exception saying some
             * memory is probably corrupt because this object points to trash in memory.
             * -Richard Parsons 11-21-2006
             */
            GC.SuppressFinalize(filterManager);

            manager = new SWMgr(filterManager);
            if (manager == null)
            {
                throw new ApplicationException("Unable to create the Sword utility manager");
            }

            foreach (string strPath in GetModuleLocations())
            {
                manager.augmentModules(strPath);
            }

            // first determine all the possible resources available
            int numOfModules = (int)manager.getModules().size();

            for (int i = 0; i < numOfModules; i++)
            {
                if (manager.getModuleAt(i).Type().Equals("Biblical Texts"))                 //Limit to just bibles, comment out to see all modules
                {
                    string strModuleName = manager.getModuleAt(i).Name();
                    if (lstModulesToSuppress.Contains(strModuleName))
                    {
                        continue;
                    }

                    string strModuleDesc = manager.getModuleAt(i).Description();
                    if (Properties.Settings.Default.SwordModulesUsed.Contains(strModuleName))
                    {
                        lstBibleResources.Add(new SwordResource(strModuleName, strModuleDesc, true));
                        InitSwordResourceRadioButton(strModuleName, strModuleDesc);
                    }
                    else
                    {
                        lstBibleResources.Add(new SwordResource(strModuleName, strModuleDesc, false));
                    }
                }
            }

            string moduleToStartWith = CstrNetFreeModuleName;

            if (!string.IsNullOrEmpty(Properties.Settings.Default.LastSwordModuleUsed))
            {
                moduleToStartWith = Properties.Settings.Default.LastSwordModuleUsed;
            }

            moduleVersion = manager.getModule(moduleToStartWith);
            if (moduleVersion == null)
            {
                throw new ApplicationException(String.Format("Can't find the Sword module '{0}'. Is Sword installed?", Properties.Settings.Default.SwordModulesUsed[0]));
            }

            // Setup the active module
            // Word of Christ in red
            manager.setGlobalOption("Words of Christ in Red", "On");

            //Footnotes
            manager.setGlobalOption("Footnotes", "On");

            /* NOTE: This is needed so the DOM Script I'm using for strongs numbers,
             * morph, and footnote tags will work.  This basicly allows the webbrowser
             * control to talk to my form control using DOM Script using the command
             * window.external.<the public method from this form>;
             * -Richard Parsons 01-31-2007
             */
            webBrowserNetBible.ObjectForScripting = this;

            if (tableLayoutPanelSpinControls.Controls[CstrRadioButtonPrefix + moduleToStartWith] is RadioButton)
            {
                RadioButton rb = (RadioButton)tableLayoutPanelSpinControls.Controls[CstrRadioButtonPrefix + moduleToStartWith];
                rb.Checked = true;
            }
        }