<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
  <head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2009. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <title>
      Navigate Actions
    </title>
    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
  </head>
  <body>
    <h1>
      Navigate Actions
    </h1>
	<p>
        Navigate menu commands:
	</p>
    <table border="1" cellspacing="0" cellpadding="5" summary="Navigate menu commands">
      <tbody>
        <tr>
          <th>
            <p>
              Name
            </p>
          </th>
          <th>
            <p>
              Function
            </p>
          </th>
          <td>
            <strong>Keyboard Shortcut</strong>
          </td>
        </tr>
        <tr align="left" valign="top">
          <td align="left" valign="top">
            <p>
              Go Into
            </p>
          </td>
          <td align="left" valign="top">
            <p>
              Sets the view input to the currently selected element. Supported by the <a href="views/ref-view-package-explorer.htm">Package Explorer</a> view.
            </p>
          </td>
          <td>&nbsp;
            
          </td>
        </tr>
        <tr>
          <td align="left" valign="top">
            <p>
              Go To
            </p>
          </td>
          <td align="left" valign="top">
            <ul>
              <li>
                Back: Sets the view input to the input back in history: Only enabled when a history exists (<strong>Go Into</strong> was used)
              </li>
              <li>
                Forward: Sets the view input to the input forward in history: Only enabled when a history exists (<strong>Go Into</strong>,&nbsp; <strong>Go To &gt; Back</strong>
                were used)
              </li>
              <li>
                Up One Level: Sets the input of the current view to its input's parent element
              </li>
              <li>
                Type: Browse for a type and reveal it in the current view. Supported by the Package Explorer view
              </li>
              <li>
                Package: Browse for a package and reveal it in the current view. Supported by the Package Explorer view
              </li>
              <li>
                Resource: Browse for a resource and reveal it in the current view.
              </li>
            </ul>
          </td>
          <td>&nbsp;
          </td>
        </tr>
        <tr>
          <td align="left" valign="top">
            <p>
              Open Declaration
            </p>
          </td>
          <td align="left" valign="top">
            <p>
              Tries to resolve the element referenced at the current code selection and opens the file declaring the reference.&nbsp;
            </p>
          </td>
          <td>
            F3
          </td>
        </tr>
        <tr>
          <td align="left" valign="top">
            <p>
              Open Type Hierarchy
            </p>
          </td>
          <td align="left" valign="top">
            <p>
              Tries to resolve the element referenced at the current code selection and opens the element in the <a href="views/ref-type-hierarchy.htm">Type Hierarchy</a> view. Invoked
              on elements, opens the type hierarchy of the element. Supported in the Java editor and views showing Java elements.
            </p>
          </td>
          <td>
            F4
          </td>
        </tr>
		<tr>
          <td align="left" valign="top">
            <p>
              Open Call Hierarchy
            </p>
          </td>
          <td align="left" valign="top">
            <p>
				Tries to resolve the method referenced at the current code selection and opens the element in the <a href="views/ref-call-hierarchy.htm">Call Hierarchy</a> view.
			</p>
          </td>
          <td>
            Ctrl + Alt + H
          </td>
        </tr>
		  
        <tr>
          <td align="left" valign="top">
            <p>
              Open Super Implementation
            </p>
          </td>
          <td align="left" valign="top">
            <p>
              Open an editor for the super implementation of the currently selected method or method surrounding the current cursor position. No editor is opened if no method is
              selected or the method has no super implementation.
            </p>
          </td>
          <td>&nbsp;
            
          </td>
        </tr>
        <tr>
          <td>
            Open Attached Javadoc
          </td>
          <td>
            Opens the Javadoc documentation of the currently selected element or text selection. The location of the Javadoc of a JAR or a project is specified in the <a href=
            "ref-dialog-javadoc-location.htm">Javadoc location property page</a> on projects or JARs. Note that this attached Javadoc documentation may not be up to date with the
            Javadoc specified in the current code. You can create Javadoc documentation for source files in a Java project using the <a href="ref-export-javadoc.htm">Javadoc
            export wizard</a>.&nbsp;
          </td>
          <td>
            Shift + F2
          </td>
        </tr>
        <tr align="left" valign="top">
          <td>
            Open Type
          </td>
          <td>
            Brings up the <a href="ref-dialog-open-type.htm">Open Type</a> dialog to open a type in the editor. The Open Type selection dialog shows all types existing in the workspace.
          </td>
          <td>
            Ctrl + Shift + T
          </td>
        </tr>
        <tr align="left" valign="top">
          <td>
            Open Type In Hierarchy
          </td>
          <td>
            Brings up the Open Type dialog to open a type in the editor and the <a href="views/ref-type-hierarchy.htm">Type Hierarchy</a> view. The Open Type selection dialog
            shows all types that exist in the workspace.
          </td>
          <td>
            Ctrl + Shift + H
          </td>
        </tr>
		<tr>
          <td align="left" valign="top">
            <p>
              Open Resource
            </p>
          </td>
          <td align="left" valign="top">
            <p>Opens the Open Resource dialog to open any resource in your workspace.</p>
          </td>
          <td>
            Ctrl + Shift + R
          </td>
        </tr>
		<tr>
          <td align="left" valign="top">
            <p>
              Show In Breadcrumb
            </p>
          </td>
          <td align="left" valign="top">
            Shows the currently selected element in the breadcrub bar of the Java editor.
          </td>
          <td>
            Ctrl + Shift + B
          </td>
        </tr>        
        <tr align="left" valign="top">
          <td>Show In</td>
          <td>
			  Choose to show the currently selected element in 
			  <ul>
				  <li>Package Explorer</li>
				  <li>History</li>
				  <li>Navigator</li>
				  <li>Outline</li>
			  </ul>
		  </td>
          <td>Alt + Shift + W</td>
        </tr>
        <tr align="left" valign="top">
          <td>
            Quick Outline
          </td>
          <td>
            Opens the lightweight outliner for the currently selected type.
          </td>
          <td>Ctrl + O
          </td>
        </tr>
	   <tr align="left" valign="top">
          <td>
            Quick Type Hierarchy
          </td>
          <td>
            Opens the lightweight hierarchy viewer for the currently selected type.
          </td>
          <td>Ctrl + T
          </td>
        </tr>
        <tr>
          <td>
            Next / Next Annotation / <a href="views/debug/ref-nextthread.htm">Next Thread</a>
          </td>
          <td>
            Selects the next annotation in the Java editor.  Selects the next suspended thread in the <a href="views/debug/ref-debug_view.htm">Debug View</a>.
          </td>
          <td>
            Ctrl + .
          </td>
        </tr>
        <tr>
          <td>
            Previous / Previous Annotation / <a href="views/debug/ref-previousthread.htm">Previous Thread</a>
          </td>
          <td>
            Selects the previous annotation in the java editor. Selects the previous suspended thread in the <a href="views/debug/ref-debug_view.htm">Debug View</a>.
          </td>
          <td>
            Ctrl + ,
          </td>
        </tr>
        <tr>
          <td>
            Last Edit Location
          </td>
          <td>
            Reveals the location where the last edit occurred.
          </td>
          <td>
            Ctrl + Q
          </td>
        </tr>
        <tr>
          <td>
            Go to Line
          </td>
          <td>
            Opens an a dialog which allows entering the line number to which the editor should jump to. Editor only.
          </td>
          <td>
            Ctrl + L
          </td>
        </tr>
		<tr>
          <td>
			  Back
          </td>
          <td>Reveals the previous editor location in the location history.</td>
          <td>
            Alt + Left
          </td>
        </tr>
		<tr>
          <td>
			  Forward
		  </td>
          <td>Reveals the next editor location in the location history.</td>
          <td>
            Alt + Right
          </td>
        </tr>
      </tbody>
    </table>
    <p>
      <img  src="../images/ngrelc.png" alt="Related concepts" border="0">
      </p>
      <p>
      <a href="../concepts/concept-java-views.htm">Java views</a><br>
      <a href="../concepts/concept-jdt.htm">Java development tools (JDT)</a>
    </p>
    <p>
      <img border="0"  src="../images/ngrelt.png" alt="Related tasks">
      </p>
      <p>
    <a href="../tasks/tasks-73.htm">Opening an editor for a selected element</a><br>
     <a href="../tasks/tasks-74.htm">Showing an element in the package explorer</a><br>
     <a href="../tasks/tasks-75.htm">Opening a type in the package explorer</a><br>
     <a href="../tasks/tasks-76.htm">Opening an editor on a type</a><br>
     <a href="../tasks/tasks-77.htm">Opening a package</a><br>
    </p> 
    <p>
      <img border="0"  src="../images/ngrelr.png" alt="Related reference">
      </p>
      <p>
      <a href="views/ref-view-package-explorer.htm">Package explorer view</a><br>
	  <a href="views/ref-type-hierarchy.htm">Type hierarchy view</a><br>
	  <a href="ref-dialog-javadoc-location.htm">Javadoc location properties</a><br>
	  <a href="ref-export-javadoc.htm">Javadoc export wizard</a>
    </p>
    
  </body>
</html>

