/// <summary> /// Gets all the modules of the given type. /// </summary> /// <param name="type"> /// null = gets all types /// "Biblical Texts" /// </param> /// <returns>A list of module names</returns> public List <string> getModules(string type) { List <string> modules = new List <string>(); int numOfBibles = (int)manager.getModules().size(); for (int i = 0; i < numOfBibles; i++) { if (String.IsNullOrEmpty(type)) { modules.Add(manager.getModuleAt(i).Name()); } else if (manager.getModuleAt(i).Type().Equals(type)) { modules.Add(manager.getModuleAt(i).Name()); } } return(modules); }
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; } }