Package docking.help

Class GHelpSet

  • All Implemented Interfaces:
    java.io.Serializable

    public class GHelpSet
    extends javax.help.HelpSet
    Ghidra help set that creates a GhidraHelpBroker, installs some custom HTML handling code via the GHelpHTMLEditorKit, and most importantly, changes how the JavaHelp system works with regard to integrating Help Sets.

    The HelpSet class uses a javax.help.Map object to locate HTML files by javax.help.map.ID objects. This class has overridden that basic usage of the Map object to allow ID lookups to take place across GHelpSet objects. We need to do this due to how we merge help set content across modules. More specifically, in order to merge, we have to make all <tocitem> xml tags the same, including the target HTML file they may reference. Well, when a module uses a <tocitem> tag that references an HTML file not inside of it's module, then JavaHelp considers this an error and does not correctly merge the HelpSets that share the reference. Further, it does not properly locate the shared HTML file reference. This class allows lookups across modules by overridden the lookup functionality done by the map object. More specifically, we override getCombinedMap() and getLocalMap() to use a custom delegate map object that knows how do do this "cross-module" help lookup.

    See Also:
    GHelpHTMLEditorKit, Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.help.HelpSet

        javax.help.HelpSet.DefaultHelpSetFactory, javax.help.HelpSet.Presentation
    • Field Summary

      • Fields inherited from class javax.help.HelpSet

        helpBrokerClass, helpBrokerLoader, implRegistry, kitLoaderRegistry, kitTypeRegistry, listenerList, publicIDString, publicIDString_V2
    • Constructor Summary

      Constructors 
      Constructor Description
      GHelpSet​(java.lang.ClassLoader loader, java.net.URL helpset)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.help.HelpBroker createHelpBroker()  
      javax.help.Map getCombinedMap()  
      javax.help.Map getLocalMap()  
      • Methods inherited from class javax.help.HelpSet

        add, addHelpSetListener, addPresentation, addSubHelpSet, addView, contains, createHelpBroker, findHelpSet, findHelpSet, findHelpSet, fireHelpSetAdded, fireHelpSetRemoved, getDefaultPresentation, getHelpSets, getHelpSetURL, getHomeID, getKeyData, getLoader, getLocale, getNavigatorView, getNavigatorViews, getPresentation, getPresentations, getTitle, parse, parseInto, remove, removeHelpSetListener, setHomeID, setKeyData, setLocalMap, setTitle, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • GHelpSet

        public GHelpSet​(java.lang.ClassLoader loader,
                        java.net.URL helpset)
                 throws javax.help.HelpSetException
        Throws:
        javax.help.HelpSetException
    • Method Detail

      • createHelpBroker

        public javax.help.HelpBroker createHelpBroker()
        Overrides:
        createHelpBroker in class javax.help.HelpSet
      • getLocalMap

        public javax.help.Map getLocalMap()
        Overrides:
        getLocalMap in class javax.help.HelpSet
      • getCombinedMap

        public javax.help.Map getCombinedMap()
        Overrides:
        getCombinedMap in class javax.help.HelpSet