<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta name="copyright" content=
    "Copyright (c) IBM Corporation and others 2000, 2011. 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=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type=
    "text/css" />
    <title>
      Moving and docking views
    </title>
    <script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript">
</script>

    <style type="text/css">
/*<![CDATA[*/
    body {
    background-color: #FFFFFF;
    }
    /*]]>*/
    </style>
  </head>
  <body>
    <h1>
      Moving and docking views
    </h1>
    <p>
      To change the location of a view in the current perspective:
    </p>

    <ol>
      <li>Drag the view by holding its tab. Do not release the left mouse button
      yet.
      </li>
      <li>As you move the view around the Workbench, the mouse pointer changes
      to one of the <i>drop cursors</i>, providing <i>feedback</i> on where  
      where the view will be docked if you release the left mouse button. 
      To see the drop feedback, drag the view over the left, right, top, 
      or bottom border of another view or editor. You may also drag
      the view <i>outside</i> of the Workbench area to turn it into a
      "Detached" view.
      </li>
      <li>When the view is in the location that you want, relative to the view
      or editor area underneath the drop cursor, release the left mouse button.
      </li>
      <li>(Optional) If you want to save your changes, select <a class=
      "command-link" href=
      'javascript:executeCommand("org.eclipse.ui.window.savePerspective")'><img src="PLUGINS_ROOT/org.eclipse.help/command_link.png"
        alt="command link" /> <b>Window &gt; Perspective &gt; Save Perspective As...</b></a>
        from the main menu bar.
      </li>
      <li>Note that a group of stacked views can be moved by holding and dragging the empty
      space to the right of the view tabs.
      </li>
    </ol>
    <p>
      While dragging the view, you will see an overlay to indicate <i>where the view will be positioned</i>.
    </p>
    <table border="1" cellspacing="0" cellpadding="5">
      <tbody>
        <tr>
          <th colspan="1" valign="bottom" align="left" height="38">
            Feedback
          </th>
          <th colspan="1" valign="bottom" align="left" height="38">
            View positioning
          </th>
        </tr>
        <tr>
          <td colspan="1" align="center" height="38">
            <img align="top" border="0" src="../images/drop_vert_bar.png" alt=
            " Stack views" />
          </td>
          <td colspan="1" valign="top" align="left" height="38">
            <em>drop, vertical bar</em>: marks the insertion between other view tabs.
          </td>
        </tr>
        <tr>

          <td colspan="1" align="center" height="38">
            <img align="top" border="0" src=
            "../images/drop_rect_area.png" alt=" Tear off icon " />
          </td>
          <td colspan="1" valign="top" align="left" height="38">
            <em>drop, rectangular area</em>: shows the positioning of the view in an empty area: either in the IDE or as detached view.
          </td>
        </tr>
        <tr>
          <td colspan="1" align="center" height="38">

            <img align="top" border="0" src=
            "../images/drop_invalid_source.png" alt=" Restricted icon" />
          </td>
          <td colspan="1" valign="top" align="left" height="38">
            <em>prohibition</em>: signals you can not dock the view in this area.
          </td>
        </tr>
      </tbody>
    </table>
    <p>

      <img border="0" src="../images/ngrelc.png" alt=
      "Related concepts." /><br />
      <a href="../concepts/concepts-5.htm">Views</a><br />
      <a href="../concepts/concepts-21a.htm">Detached views</a><br />
      <a href="../concepts/concepts-4.htm">Perspectives</a>
    </p>
    <p>

      <img border="0" src="../images/ngrelt.png" alt="Related tasks" /><br />
      <a href="tasks-3.htm">Opening views</a><br />
      <a href="tasks-9l.htm">Detaching views and editors</a><br />
      <a href="../gettingStarted/qs-39g.htm">Maximizing a view or
      editor</a><br />
      <a href="tasks-9i.htm">Saving a user defined perspective</a><br />

      <a href="tasks-9j.htm">Resetting perspectives</a>
    </p>
  </body>
</html>
