<html>
  <head>
    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
	<link rel=stylesheet type="text/css" href="../css/book.css">
    <title>Object Teams perspective</title>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <style type="text/css">
      h2 {color: blue}
    </style>    
  </head>
  <body>
    <h1>Object Teams perspective</h1>
    The <b>Object Teams perspective</b> combines views that you use while
    editing OT/J source files (see
    <a href="/help/topic/org.eclipse.platform.doc.user/concepts/concepts-4.htm">
    perspectives</a>).
    <h2>Opening the Object Teams perspective</h2>
    To open the Object Teams perspective:
    <ol>
      <li>Click the <b>Open Perspective</b> button on the shortcut bar on the left side of
          the Workbench window or select <b>Window > Open Perspective </b> from the
          Workbench window menu bar.</li>
      <li>To see a complete list of perspectives, select <b>Other...</b> from the drop-down
          menu.
      </li>
      <li>Select the "Object Teams" perspective.</li>
    </ol>
    <p>When the perspective opens, the title bar of the window changes to display the name
    of the perspective (i.e. Object Teams). In addition, an icon is added to the shortcut
    bar, allowing you to quickly switch back to that perspective from other perspectives in
    the same window.
	<p>
	  <img src="images/screenshots/perspective.png" width=285 height=63
	  	   alt="Object Teams icon in shortcut bar"<br>
      Object Teams icon in the shortcut bar ("Show text" disabled).
    </p>
    <p>By default, a perspective will open in the same window. If you would rather it opened
	in a new window, change the setting in <b>Window > Preferences > Workbench > Perspectives
	</b>.
	</p>
  </body>
</html>  
