blob: 9d09bf87afc50000cb449f5f54f752ba307366f6 [file] [log] [blame]
Stephan Herrmann01664412010-04-01 20:28:43 +00001<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>