<!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>
  </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.svg"
        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>
