Documentation for JIRA 4.3. Documentation for other versions of JIRA is available too.

How do I get a handle to object X (specifically IssueNavigator)?

For JIRA plugins in many cases you can simply pass an object to your plugin's constructor. However some objects are not by default available. In these cases you have to add the <component> to your atlassian-plugin.xml file like so:

    <component key="issueNavigator" name="Issue Navigator" class="com.atlassian.jira.web.action.issue.IssueNavigator">      <interface>com.atlassian.jira.web.action.issue.IssueNavigator</interface>
    </component>

There are many examples in the atlassian-plugin.xml files within the sample plugins found in the JIRA development kit.