<html>
  <head>
    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2011. 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="otjld/css/ot.css">
	<link rel=stylesheet type="text/css" href="otguide.css">
	<style type="text/css">
		body { margin:10px; }
		.high { background-color:#a5b7bd;color:white; }
		.low { background-color:#fff0c8; padding:2px; }
		.caption { text-decoration:underline; vertical-align:top;position:relative;top:20px; margin-top:10px;}
	</style>
    <title>Binding Editor</title>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  </head>
  <body>
	<h1 align="center">Binding Editor</a></h1>
		The binding editor provides a tabular visualization of all bindings (playedBy, callout, callin) of a given team class.
		After selecting a team class the binding editor can be invoked using <span class="ui"><img src="../images/calloutbinding_obj.gif">Open Binding Editor</span> from the context menu.
	<h2>Visualization</h2>
		The top half of the binding editor consists of three columns: <b>role</b>, <b>binding kind</b>, <b>base</b>.
		All elements nested in a team or role class can be collapsed/expanded as in other structural views.
		<img alt="Binding Editor" src="images/screenshots/BindingEditor_FlightBonus.png">
	<h2>Editing</h2>
		Bindings can be edited at three levels: <b>types</b>, <b>methods</b>, <b>parameters</b>.
		Especially, when creating the "Connector" in the <a href="http://wiki.eclipse.org/OTPattern/Connector">Connector Pattern</a>,
		the binding editor may be all you need, i.e., the full connector definition can be generated using the binding editor
		with no need to edit source code in the Java editor.
		<h3>Adding playedBy bindings</h3>
			When clicking <span class="ui">Add Type Binding</span> you are presented with a twofold type selection dialog.
			<p>
			<img alt="Add Type Binding" src="images/screenshots/BindingEditor_AddTypeBinding.png"/>
			</p>
			On the left hand side select one of the role types inherited from the super team, 
			on the right hand side select the base class you wish to bind to the role using <code class="keyword">playedBy</code>.
			When clicking <span class="ui">OK</span> this information will be used for creating a new role class 
			overriding the selected role from the super team and bound to the selected base class.
		<h3>Adding method bindings</h3>
			Method bindings are created in the lower half of the binding editor.
			<p>
				For creating a <b>callout</b> binding between an existing role method and a base method
				simply select both methods from the respective lists of Role Methods / Base Methods,
				also select <span class="ui">-&gt;</span> between both lists and click <span class="ui">Apply</span>.<br/>
				If the selected role method is not abstract, select <span class="ui">=&gt;</span> for an overriding callout.</br> 
				For creating a callout binding without an existing role method select <span class="ui"><img src="images/add_correction.gif"> 'New Method()</span>
				from the left list.
			</p>
			<p>
				For creating a <b>callin</b> binding simply select both methods from the respective lists of Role Methods / Base Methods,
				also select one of the callin kinds <span class="ui">&lt;- before</span>, <span class="ui">&lt;- replace</span>, or <span class="ui">&lt;- after</span>
				between both lists and then click <span class="ui">Apply</span>.<br/>
			</p>
		<h3>Adding parameter mappings</h3>
			For creating a parameter mapping first select the method binding, then switch to the tab <span class="ui">Parameter Mapping Configuration</span>.
			<p>
				<img alt="Create Parameter Mapping" src="images/screenshots/BindingEditor_ParameterMappings.png"/>
			</p>
			Depending on the binding direction enter details in the fields showing either <span class="ui">&lt;-</span> or <span class="ui">-&gt;</span>
			between them.
			On the target side (where the arrow is pointing to) select one of the declared parameters, on the other side enter a
			Java expression that can be resolved in the given scope. Don't forget to create each individual parameter mapping using <span class="ui">Apply</span>.
	<hr/>
	<p>
		When closing the binding editor using <span class="ui">OK</span> all pending changes will be generated into the appropriate source file.
	</p>
  </body>
</html>