<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="PLUGINS_ROOT/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>  
