blob: 2c25a12d2a6135e2d8b41e7f032266d0078b335d [file] [log] [blame]
<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">
<link rel=stylesheet type="text/css" href="otguide.css">
<title>Object Teams Package Explorer</title>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h1>Object Teams Package Explorer</h1>
<p>
The <b>Object Teams package explorer</b> provides the following features
(in addition to the features of the standard JDT
<a href="PLUGINS_ROOT/org.eclipse.jdt.doc.user/reference/views/ref-view-package-explorer.htm">
package explorer view</a>):<br>
<ul>
<li>Showing the <b>Object Teams element hierarchy</b> of the Object Teams projects in the
workbench including
<ul>
<li><u>specific classes:</u><br />
&ndash; <b>team</b> class (<img src="../images/team_obj.gif">).<br>
&ndash; <b>role</b> class (<img src="../images/role_obj.png">).<br>
&ndash; a <b>nested team</b> (<img src="../images/team_role_obj.gif">) is a role as well as a team.
</li>
<li><u>role class decorations:</u><br>
&ndash; <b>bound role</b> class (<span><img style="position:relative;left:0px;" src="../images/role_obj.png"><img style="position:relative;left:-2px;top:-4px;" src="../images/boundrole_co.gif"></span>)
&mdash; <em>has a <code class="keyword">playedBy</code> declaration.</em>
<br>
&ndash; <b>overriding role</b> class (<span><img style="position:relative;left:0px;" src="../images/role_obj.png"><img style="position:relative;left:-2px;top:4px;" src="../images/over_co_ovr16.gif"></span>)
&mdash; <em>overrides a role from the super team</em><br>
<li><u>methods:</u><br />
&ndash; <b>callin</b> methods are marked with a decoration <img src="../images/callinmethod_co.gif">.
</li>
<li><u>method bindings:</u><br />
&ndash; <b>callin</b>: before(<img src="../images/callinbindingbefore_obj.gif">),
after (<img src="../images/callinbindingafter_obj.gif">), replace (<img src="../images/callinbindingreplace_obj.gif">)
<br />
&ndash; <b>callout</b>: (<img src="../images/calloutbinding_obj.gif">)
</li>
<li><u>guard predicates:</u><br>
&ndash; <b>regular guard</b> (<img src="../images/guard_obj.gif">)<br>
&ndash; <b>base guard</b> (<img src="../images/baseguard_obj.gif">)<br>
</ul>
<li>Displaying <b>Role Files</b> physically/logically (<img src="../images/external_roles.gif">):
<ul>
<li><b>Physical</b> display uses the file and directory structure, i.e.,
role files will appear in a special folder/package representing the enclosing team.</li>
<li><b>Logical</b> display presents role files and inline roles uniformly as direct
children of their enclosing team.</li>
</ul>
<li><b>Overlay icons</b> for <b>compilations units</b> (team or role file)
and <b>packages</b> (team package) can be enabled by checking
<span class="ui">Preferences-&gt;General-&gt;Appearance-&gt;Label Decorations-&gt;Java Type Indicator</span>.
<ul>
<li><u>compilation unit:</u><br>
&ndash; holding a team class (<span><img style="position:relative;left:0px;" src="../images/jcu_obj.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/team_ovr.gif"></span>)<br>
&ndash; holding a role class (<span><img style="position:relative;left:0px;" src="../images/jcu_obj.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/role_ovr.png"></span> or
<span><img style="position:relative;left:0px;" src="../images/jcu_obj.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/team_role_ovr.gif"></span>)</li>
<li><u>package:</u><br>
&ndash; team package (<span><img style="position:relative;left:0px;" src="../images/package.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/team_ovr.gif"></span>)
</ul>
</ul>
</p>
<table>
<tr><td>
<p><u><b>Physical view:</b></u><br>
role file <code>FlightBonusDialog</code> is displayed as
a child of its team package.
</p>
<img src="images/screenshots/packageExplorer.png"
alt="Object Teams package explorer view">
</td><td><span style="width=20px;">&nbsp;</span></td><td>
<p><u><b>Logical view:</b></u><br>
role <code>FlightBonusDialog</code> is displayed as
a child of its enclosing team class.
</p>
<img src="images/screenshots/packageExplorer_logical.png"
alt="Object Teams package explorer logical view">
</td></tr></table>
<h2>Aspect bindings in Object Teams Plug-in projects</h2>
<p>
If an Object Teams Plug-in project has
<a href="../reference/extension-points/org_eclipse_objectteams_otequinox_aspectBindings.html">aspect bindings</a>
these will be displayed in the package explorer directly under the project's root:
</p><p>
<img src="images/screenshots/AspectBindingsInPackageExplorer.png" title="Package explorer showing aspect bindings"/>
</p><p>
Below the node called <span class="ui">OT/Equinox Aspect Bindings</span> you will find the list of all <img src="../images/plugin_obj.gif"/> <strong>base plug-ins</strong>
adapted by the given OT plug-in. Each base plug-in in turn lists all <img src="../images/team_obj.gif"/> <strong>teams</strong> that implement this adaptation.<br/>
Base plug-ins to which <strong>forced exports</strong> are applied are decorated with a little up-and-left arrow:
</p><p>
<img alt="Decoration for base plug-in with forced export" src="images/screenshots/ForcedExports.png">
</p><p>
Double clicking a base plugin or a team shows the corresponding element in an editor:
<ul>
<li>a base plugin as sub-element of an aspectBinding extension in the PDE's extension editor.</li>
<li>a team class in the source code editor</li>
</ul>
</p>
</body>
</html>