<!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, 2012. 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">
    <title>Java Appearance Preferences</title>
    <link rel="stylesheet" href="../../../book.css" charset="ISO-8859-1" type="text/css">
    <script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"> </script>
  </head>
  <body>
    <h1>
      Java Appearance Preferences
    </h1>
    <p>
      The appearance of Java elements in views can be configured on the
      <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.jdt.ui.preferences.AppearancePreferencePage)")'>
      <img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt="Opens the Appearance preference page">
      <b>Java &gt; Appearance</b></a> preference page and on its sub pages:
     </p>
     <ul>
      <li><a href="appearance/ref-preferences-member-sort-order.htm">Member sort order</a></li>
      <li><a href="appearance/ref-preferences-type-filters.htm">Type filters</a></li>
     </ul>
    <p> 
      The options are:
    </p>
    <table border="1" cellspacing="0" cellpadding="5" summary="Appearance preference page">
      <thead>
        <tr>
          <th>
            <p>
              Option
            </p>
          </th>
          <th>
            <p>
              Description
            </p>
          </th>
          <th>
            <p>
              Default
            </p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td valign="top">
            <p>
               Show method return types
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, methods displayed in views show the return type.
            </p>
          </td>
          <td valign="top">
            <p>
              Off
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              Show method type parameters
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, methods displayed in views show their type parameters.
            </p>
          </td>
          <td valign="top">
            <p>
              On
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              Show categories
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, method, field and type labels contain the categories specified in their Javadoc comment.
            </p>
          </td>
          <td valign="top">
            <p>
              On
            </p>
          </td>
        </tr>        
        <tr>
          <td valign="top">
            <p>
              Show members in Package Explorer
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, Java elements below the level of Java files and Class files are displayed as well.
            </p>
          </td>
          <td valign="top">
            <p>
              On
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              Fold empty packages in hierarchical layout
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, empty packages which do not contain resources or other child elements are folded.
            </p>
          </td>
          <td valign="top">
            <p>
              On
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              Compress package name segments
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, package names, except for the final segment, are compressed according to the compression pattern.
            </p>
          </td>
          <td valign="top">
            <p>
              Off
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              Abbreviate package names
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, package names are abbreviated according to the specified abbreviation rules.
            </p>
          </td>
          <td valign="top">
            <p>
              Off
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              Stack views vertically in the Java Browsing perspective
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, views in Java Browsing perspective will be stacked vertically, rather than horizontally.
            </p>
          </td>
          <td valign="top">
            <p>
              Off
            </p>
          </td>
        </tr>
      </tbody>
    </table>
    Note: The <b>Colored Labels</b> settings is now available on the
    <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.ui.preferencePages.Views)")'>
    <img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt="Opens the General Appearance preference page">
    General &gt; Appearance</a> preference page.
    
    
    <p>
      <img src="../../../images/ngrelc.png" alt="Related concepts" border="0" ></p>
      <p>
      <a href="../../../concepts/concept-java-views.htm">Java views</a>
    </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>
    </p>
    
  </body>
</html>

