Stephan Herrmann | 0166441 | 2010-04-01 20:28:43 +0000 | [diff] [blame] | 1 | <html> |
| 2 | <head> |
| 3 | <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" /> |
| 4 | <link rel=stylesheet type="text/css" href="../css/book.css"> |
| 5 | <link rel=stylesheet type="text/css" href="otjld/css/ot.css"> |
| 6 | <link rel=stylesheet type="text/css" href="otguide.css"> |
| 7 | <title>Java editor with Object Teams capability</title> |
| 8 | <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| 9 | </head> |
| 10 | <body> |
| 11 | <h1>Java editor with Object Teams capability</h1> |
| 12 | The extended Java editor provides specialized features for editing |
| 13 | OT/J code. The original <a href="/help/topic/org.eclipse.jdt.doc.user/concepts/concepts-7.htm">Java editor</a> |
| 14 | has been extended for the following features: |
| 15 | <ul> |
| 16 | <li><b>Navigation</b> support for Object Teams elements (F3 = <span class="ui">Open Declaration</span>, see below)</li> |
| 17 | <li><b>Syntax highlighting</b> for OT/J keywords and modifiers.<br /> |
| 18 | OT/J keywords are enabled based on the contents of the file being edited. |
| 19 | This way the same editor still handles plain Java sources <i>without</i> interpreting OT/J keywords.<br/> |
| 20 | However, within an OT/J file syntax highlighting is determined in a context-free manner, |
| 21 | which means that scoped keywords |
| 22 | (<a href="otjld/def/sA.html#sA.0.1"><img src="../icons/ot_paragraph.gif"> A.0.1</a>) |
| 23 | like <code class="keyword">after, base, before, get, result, set</code> are highlighted, |
| 24 | even in situations where they have no special meaning. |
| 25 | </li> |
| 26 | <li><a href="contentassist.html"><b>Content/code assist</b> (code completions)</a> for Object Teams program elements. |
| 27 | </li> |
| 28 | <li><b>Templates (source patterns)</b> for Object Teams specific language constructs |
| 29 | using content assist (<b>Ctrl+Space</b>), |
| 30 | e.g. <code class="keyword">within</code> (<i>Expression</i>) <i>Statement</i> |
| 31 | </li> |
| 32 | <li>New <a href="callinmarker.html"><b>binding marker</b></a> annotations in the vertical ruler (for base classes/methods bound using playedBy/callin/callout) |
| 33 | allowing navigation to the affecting role. |
| 34 | </li> |
| 35 | </ul> |
| 36 | <h2><a name="navigation">Navigation</a></h2> |
| 37 | Obvious enhancements for the normal F3 navigation regard the following: |
| 38 | <ul> |
| 39 | <li>Go to a role's base class using the <code class="keyword">playedBy</code> clause.</li> |
| 40 | <li>Go to a bound base method or a bound field using a callout or callin binding<br /> |
| 41 | (the opposite direction is supported by <a href="callinmarker.html">binding markers</a>).</li> |
| 42 | </ul> |
| 43 | Navigating <strong>role files</strong> |
| 44 | (<a href="otjld/def/s1.html#s1.2.5"><img src="../icons/ot_paragraph.gif"> 1.2.5</a>): |
| 45 | <ul> |
| 46 | <li>Hitting F3 on the <code class="keyword">team package</code> declarations jumps to the enclosing team.</li> |
| 47 | <li>In order to navigate from a team to its role file use the quick outline |
| 48 | by hitting <code>Ctrl-O</code> twice:<br /> |
| 49 | role files will be offered for selection along inline members.</li> |
| 50 | <li>If javadoc <code>@role</code> tags are used as recommended for listing all role files of the current team |
| 51 | (<a href="otjld/def/s1.html#s1.2.5.d"><img src="../icons/ot_paragraph.gif"> 1.2.5(d)</a>), |
| 52 | the role names in these tags support F3-navigation to the corresponding roles, too.</li> |
| 53 | </ul> |
| 54 | Navigating the <strong>implicit role hierarchy</strong> (<a href="otjld/def/s1.html#s1.3.1"><img src="../icons/ot_paragraph.gif"> 1.3.1</a>): |
| 55 | <ul> |
| 56 | <li>A role class that overrides a corresponding role from the super team is decorated with an override marker (<img src="images/over_co.gif">) in the vertical ruler, |
| 57 | which supports the <span class="ui">Open Super Implementation</span> action.</li> |
| 58 | <li>A role method overriding a corresponding method from any explicit or implicit super role |
| 59 | are also decorated with an override marker (<img src="images/over_co.gif">) supporting navigation to the overridden method.</li> |
| 60 | </ul> |
| 61 | </body> |
| 62 | </html> |