<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7387747921278902619</id><updated>2011-09-19T20:20:09.440+02:00</updated><title type='text'>ANy's Argument</title><subtitle type='html'>Weblog by Alexander Nyßen</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nyssen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7387747921278902619/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nyssen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alexander Nyßen</name><uri>http://www.blogger.com/profile/10639254413012056611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_DnnCLUVUeJM/SrzMMGZFXOI/AAAAAAAAADQ/Vz1lFSodqK4/S220/cd_dr_6517.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7387747921278902619.post-4330300484016124663</id><published>2010-12-22T20:31:00.001+01:00</published><updated>2010-12-22T20:46:18.822+01:00</updated><title type='text'>The Draw2d Examples - A Hidden Treasure</title><content type='html'>While this is not really documented, hidden in the depths of the &lt;a href="http://www.eclipse.org/gef"&gt;GEF&lt;/a&gt; cvs repository, there is quite a bunch of nice little&amp;nbsp;&lt;a href="http://www.eclipse.org/gef/draw2d/index.php"&gt;Draw2d&lt;/a&gt;&amp;nbsp;examples, which may help beginners as well as prospective&amp;nbsp;experts in understanding the framework's principles and mechanisms.&lt;br /&gt;&lt;br /&gt;All that has to be done in order to access them is to check out the&amp;nbsp;&lt;code&gt;org.eclipse.draw2d.examples&lt;/code&gt; plug-in from&amp;nbsp;the&amp;nbsp;&lt;code&gt;examples&lt;/code&gt;&amp;nbsp;module of the&amp;nbsp;&lt;a href="http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.gef/?root=Tools_Project"&gt;repository&lt;/a&gt;&amp;nbsp;(please follow GEF's&amp;nbsp;&lt;a href="http://www.eclipse.org/gef/getting_involved.php"&gt;getting involved&lt;/a&gt;&amp;nbsp;pages for detailed instructions on how to access the repository).&amp;nbsp;All examples are implemented as standalone Java applications, so they can quite easily be executed.&lt;br /&gt;&lt;br /&gt;Of course, every set of examples has to include a "Hello World". So here we are:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRI6x9yuU9I/AAAAAAAAAF0/wbfwZfj_jc8/s1600/Bildschirmfoto+2010-12-22+um+18.45.42.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRI6x9yuU9I/AAAAAAAAAF0/wbfwZfj_jc8/s200/Bildschirmfoto+2010-12-22+um+18.45.42.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But there's more. Consider&amp;nbsp;for instance the flow, grid, and toolbar layout demos.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_DnnCLUVUeJM/TRI9UEeVgPI/AAAAAAAAAF4/DeO74qp_eNY/s1600/Bildschirmfoto+2010-12-22+um+18.54.49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://3.bp.blogspot.com/_DnnCLUVUeJM/TRI9UEeVgPI/AAAAAAAAAF4/DeO74qp_eNY/s320/Bildschirmfoto+2010-12-22+um+18.54.49.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_DnnCLUVUeJM/TRI9jjibS7I/AAAAAAAAAF8/exE51j84ylE/s1600/Bildschirmfoto+2010-12-22+um+19.03.48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://3.bp.blogspot.com/_DnnCLUVUeJM/TRI9jjibS7I/AAAAAAAAAF8/exE51j84ylE/s320/Bildschirmfoto+2010-12-22+um+19.03.48.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_DnnCLUVUeJM/TRI9neP1f7I/AAAAAAAAAGA/ZGc9fWjLU68/s1600/Bildschirmfoto+2010-12-22+um+19.02.02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="310" src="http://4.bp.blogspot.com/_DnnCLUVUeJM/TRI9neP1f7I/AAAAAAAAAGA/ZGc9fWjLU68/s320/Bildschirmfoto+2010-12-22+um+19.02.02.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And what about playing around a bit with shape styles...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_DnnCLUVUeJM/TRI-r_RVcfI/AAAAAAAAAGE/iNVzWQeJHN8/s1600/Bildschirmfoto+2010-12-22+um+19.08.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://3.bp.blogspot.com/_DnnCLUVUeJM/TRI-r_RVcfI/AAAAAAAAAGE/iNVzWQeJHN8/s320/Bildschirmfoto+2010-12-22+um+19.08.14.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;... or learning more about the behavior of locators?&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_DnnCLUVUeJM/TRI_Ee6E4tI/AAAAAAAAAGM/IP8d6hCY_FQ/s1600/Bildschirmfoto+2010-12-22+um+19.10.11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://4.bp.blogspot.com/_DnnCLUVUeJM/TRI_Ee6E4tI/AAAAAAAAAGM/IP8d6hCY_FQ/s320/Bildschirmfoto+2010-12-22+um+19.10.11.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There's also something to demonstrate Draw2d's more advanced features like shortest path connection routing ...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_DnnCLUVUeJM/TRJAGdzXymI/AAAAAAAAAGQ/om5Op8EgHZE/s1600/Bildschirmfoto+2010-12-22+um+19.13.54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://2.bp.blogspot.com/_DnnCLUVUeJM/TRJAGdzXymI/AAAAAAAAAGQ/om5Op8EgHZE/s320/Bildschirmfoto+2010-12-22+um+19.13.54.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;... directed graph layout ...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRJBViAdebI/AAAAAAAAAGc/lamlIr7i62M/s1600/Bildschirmfoto+2010-12-22+um+19.12.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="139" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRJBViAdebI/AAAAAAAAAGc/lamlIr7i62M/s320/Bildschirmfoto+2010-12-22+um+19.12.39.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;... zooming ...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRJCgcDIbDI/AAAAAAAAAGg/bt-fHFwsvN8/s1600/Bildschirmfoto+2010-12-22+um+19.23.04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRJCgcDIbDI/AAAAAAAAAGg/bt-fHFwsvN8/s320/Bildschirmfoto+2010-12-22+um+19.23.04.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;... printing ...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRJFTlB7LjI/AAAAAAAAAGw/UDv3PRp2IPk/s1600/Bildschirmfoto+2010-12-22+um+19.24.43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/TRJFTlB7LjI/AAAAAAAAAGw/UDv3PRp2IPk/s200/Bildschirmfoto+2010-12-22+um+19.24.43.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;...&amp;nbsp;or text flows.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_DnnCLUVUeJM/TRJC3wiwK0I/AAAAAAAAAGs/Hp9IraRQGDA/s1600/Bildschirmfoto+2010-12-22+um+19.23.53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://4.bp.blogspot.com/_DnnCLUVUeJM/TRJC3wiwK0I/AAAAAAAAAGs/Hp9IraRQGDA/s320/Bildschirmfoto+2010-12-22+um+19.23.53.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And there's even more. So please have a look!&lt;br /&gt;&lt;br /&gt;And if you wonder why these examples are not bundled with the GEF SDK, or why they are not included in the Draw2d reference documentation: well, that's something we wondered about ourselves&amp;nbsp;and that we are planning to change in the near future&amp;nbsp;(see bugs&amp;nbsp;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=213041"&gt;#213041&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=332575"&gt;#332575&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7387747921278902619-4330300484016124663?l=nyssen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7387747921278902619/posts/default/4330300484016124663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7387747921278902619/posts/default/4330300484016124663'/><link rel='alternate' type='text/html' href='http://nyssen.blogspot.com/2010/12/draw2d-examples-hidden-treasure.html' title='The Draw2d Examples - A Hidden Treasure'/><author><name>Alexander Nyßen</name><uri>http://www.blogger.com/profile/10639254413012056611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_DnnCLUVUeJM/SrzMMGZFXOI/AAAAAAAAADQ/Vz1lFSodqK4/S220/cd_dr_6517.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_DnnCLUVUeJM/TRI6x9yuU9I/AAAAAAAAAF0/wbfwZfj_jc8/s72-c/Bildschirmfoto+2010-12-22+um+18.45.42.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7387747921278902619.post-1461420198093222000</id><published>2010-02-23T00:14:00.016+01:00</published><updated>2010-02-25T08:35:55.023+01:00</updated><title type='text'>Ghost Image Feedback - Enhancing Support for Viewports in GEF</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;As I had quite recently initiated a&amp;nbsp;&lt;a href="http://dev.eclipse.org/mhonarc/lists/gef-dev/msg01242.html"&gt;discussion&lt;/a&gt; about enriching the&amp;nbsp;&lt;a href="http://www.eclipse.org/"&gt;Eclipse Graphical Editing Framework (GEF)&lt;/a&gt;&amp;nbsp;with some&amp;nbsp;"advanced" editing features, I thought this to be a good opportunity to give a concrete example of what I had in mind by posting about a feature that could&amp;nbsp;improve the end-user experience when working with nested viewports.&lt;br /&gt;&lt;br /&gt;So what is the problem when working with viewports? To put it bluntly I think their biggest advantage most&amp;nbsp;certainly is also their biggest disadvantage. That is, the possibility to reduce a container figure's external bounds (making it thus easier to embed it within a larger graphical context) while preserving the ability to access its internal contents in-place (even if not completely at a time) on the other hand yields the problem&amp;nbsp;that navigating and editing this internal contents is often quite painful, as a lot of scrolling is usually necessary to access hidden parts, and orientation is easily lost.&lt;br /&gt;&lt;br /&gt;To emphasize this, consider the following two versions of the same (slightly modified) 4-bit adder example, provided with GEF's sample logic editor.&amp;nbsp;Despite having resized the circuit figure, both diagrams are indeed identical. And having not seen the first version before, the accessibility of the second one&amp;nbsp;would most certainly be quite limited.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_DnnCLUVUeJM/S4EMbiSSZRI/AAAAAAAAAFE/IkRXRzrqguM/s1600-h/Bildschirmfoto+2010-02-21+um+11.34.54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_DnnCLUVUeJM/S4EMbiSSZRI/AAAAAAAAAFE/IkRXRzrqguM/s320/Bildschirmfoto+2010-02-21+um+11.34.54.png" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_DnnCLUVUeJM/S4EMoi7obFI/AAAAAAAAAFM/hcI0ohgwVuw/s1600-h/Bildschirmfoto+2010-02-21+um+11.35.51.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_DnnCLUVUeJM/S4EMoi7obFI/AAAAAAAAAFM/hcI0ohgwVuw/s320/Bildschirmfoto+2010-02-21+um+11.35.51.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;BTW: You might notice that by using the original GEF logic example editor you may not produce these screenshots, because connections are not clipped correctly, and because the scroll bars within the circuit figure are not transparent but&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;i&gt;&amp;nbsp;opaque. The first problem can be addressed by a patch&amp;nbsp;I contributed to&amp;nbsp;&lt;/i&gt;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195527"&gt;&lt;i&gt;bug #195527&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&amp;nbsp;(fix for clipping problems of connections in combination with viewports). The second one is something I will document herein, so keep on reading...&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;While those troubles mentioned before with respect to navigating and editing the contents of a viewport seem to be somehow the price to pay, the fact that its contents may never be visualized completely at a time, is something that can be circumvented by adequate feedback support.&amp;nbsp;What I am referring to is a feature we implemented as part of a &lt;a href="http://www.viper.sc/"&gt;reasearch&amp;nbsp;project&amp;nbsp;&lt;/a&gt;during my time at the university.&lt;br /&gt;&lt;br /&gt;The idea was born when&amp;nbsp;&lt;a href="https://www.xing.com/profile/Philip_Ritzkopf"&gt;Philip Ritzkopf&lt;/a&gt;&amp;nbsp;(who was a student assistant in our research group at that time and has very much contributed to the conception and implementation of the feature) pointed me to a&amp;nbsp;&lt;a href="http://dev.eclipse.org/newslists/news.eclipse.tools.gef/msg15158.html"&gt;post&lt;/a&gt;&amp;nbsp;in the GEF newsgroup about a "ghost image" figure (i.e. a semi-transparent copy of some original figure) that was discussed as an option to show feedback during a drag &amp;amp; drop operation. As we thought that the sketched mechanism could also be suited to show the hidden contents of a viewport, Philip and I directly started to implement a first prototype.&amp;nbsp;Having made some further iterations, the following screenshot shows the final result.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_DnnCLUVUeJM/S4EO8T335LI/AAAAAAAAAFU/BtYLHQ4-V-g/s1600-h/Bildschirmfoto+2010-02-21+um+11.45.36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_DnnCLUVUeJM/S4EO8T335LI/AAAAAAAAAFU/BtYLHQ4-V-g/s320/Bildschirmfoto+2010-02-21+um+11.45.36.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Note that in case the circuit figure is not selected, everything will look like before. However, in case it is selected you get the 'Ghost Image Feedback'. What a difference!&lt;br /&gt;&lt;br /&gt;So how is it realized? Indeed&amp;nbsp;the approach is rather lightweight. It basically consists of a respective &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SelectionEditPolicy&lt;/span&gt; (namely &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ScrollableSelectionFeedbackEditPolicy&lt;/span&gt;), some interfaces (&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;IScrollableFigure&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;IScrollableEditPart&lt;/span&gt;) to assure it can only registered to host edit parts, having a figure with a nested &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Viewport&lt;/span&gt; (or a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ScrollPane&lt;/span&gt; containing a nested&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Viewport&lt;/span&gt; to be more precise), and an implementation of a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;GhostImageFigure&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;, being&amp;nbsp;&lt;/span&gt;used to render the feedback.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;GhostImageFigure&lt;/span&gt; being used is pretty much inspired by the one depicted in above mentioned use newsgroup entry. In difference to the version being posted, our's does not&amp;nbsp;extend &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ImageFigure&lt;/span&gt; but constructs the original figure's image lazily within its &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;paintFigure()&lt;/span&gt; method. The reason to do so is that this way, disposal of the used image can be performed directly after having painting it, so that no client has to take care (while this could be an option in case any performance problems might arise). It was furthermore enhanced by a possibility to specify a transparency color, which is needed in case the original figure is a connection (whose background should indeed be regarded as transparent). Here is the source code:&lt;/div&gt;&lt;br /&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;span style="color: grey;"&gt;01&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt; &lt;span style="color: grey;"&gt;02&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;* &lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&lt;copyright&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;03&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;04&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Copyright&amp;nbsp;(C)&amp;nbsp;2005,&amp;nbsp;2008&amp;nbsp;Research&amp;nbsp;Group&amp;nbsp;Software&amp;nbsp;Construction,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;05&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWTH&amp;nbsp;Aachen&amp;nbsp;University,&amp;nbsp;Germany.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;06&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;07&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;All&amp;nbsp;rights&amp;nbsp;reserved.&amp;nbsp;This&amp;nbsp;program&amp;nbsp;and&amp;nbsp;the&amp;nbsp;accompanying&amp;nbsp;materials&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;08&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;are&amp;nbsp;made&amp;nbsp;available&amp;nbsp;under&amp;nbsp;the&amp;nbsp;terms&amp;nbsp;of&amp;nbsp;the&amp;nbsp;Eclipse&amp;nbsp;Public&amp;nbsp;License&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;09&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;version&amp;nbsp;1.0,&amp;nbsp;which&amp;nbsp;accompanies&amp;nbsp;this&amp;nbsp;distribution,&amp;nbsp;and&amp;nbsp;is&amp;nbsp;available&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;at&amp;nbsp;http://www.eclipse.org/legal/epl-v10.html.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Contributors:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;Research&amp;nbsp;Group&amp;nbsp;Software&amp;nbsp;Construction&amp;nbsp;-&amp;nbsp;Initial&amp;nbsp;API&amp;nbsp;and&amp;nbsp;implementation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;* &lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.swt.graphics.GC;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.swt.graphics.Image;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.swt.graphics.ImageData;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.swt.graphics.RGB;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.swt.widgets.Display;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;25&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.geometry.PrecisionRectangle;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;26&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.geometry.Rectangle;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;27&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;28&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;A&amp;nbsp;figure&amp;nbsp;used&amp;nbsp;to&amp;nbsp;render&amp;nbsp;a&amp;nbsp;partly&amp;nbsp;transparent&amp;nbsp;copy&amp;nbsp;of&amp;nbsp;an&amp;nbsp;original&amp;nbsp;source&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;figure.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;31&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;32&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;This&amp;nbsp;class&amp;nbsp;is&amp;nbsp;pretty&amp;nbsp;much&amp;nbsp;based&amp;nbsp;on&amp;nbsp;a&amp;nbsp;sample,&amp;nbsp;posted&amp;nbsp;within&amp;nbsp;the&amp;nbsp;GEF&amp;nbsp;newsgroup&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;33&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;(http://dev.eclipse.org/newslists/news.eclipse.tools.gef/msg15158.html),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;34&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;although&amp;nbsp;we&amp;nbsp;decided&amp;nbsp;to&amp;nbsp;not&amp;nbsp;cache&amp;nbsp;the&amp;nbsp;ghost&amp;nbsp;image&amp;nbsp;itself&amp;nbsp;(but&amp;nbsp;only&amp;nbsp;its&amp;nbsp;image&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;35&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;data),&amp;nbsp;so&amp;nbsp;the&amp;nbsp;figure&amp;nbsp;does&amp;nbsp;not&amp;nbsp;have&amp;nbsp;to&amp;nbsp;be&amp;nbsp;disposed&amp;nbsp;(and&amp;nbsp;may&amp;nbsp;thus&amp;nbsp;directly&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;36&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;extend&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;Figure}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;rather&amp;nbsp;than&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;ImageFigure}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;).&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;37&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;38&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Philip&amp;nbsp;Ritzkopf&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;39&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Alexander&amp;nbsp;Nyssen&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;40&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;41&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GhostImageFigure&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Figure&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;42&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;43&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;alpha&amp;nbsp;=&amp;nbsp;-&lt;/span&gt;&lt;span style="color: #990000;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;44&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ImageData&amp;nbsp;ghostImageData;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;45&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;46&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;47&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;The&amp;nbsp;single&amp;nbsp;constructor.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;48&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;49&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;source&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;50&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;original&amp;nbsp;figure&amp;nbsp;that&amp;nbsp;will&amp;nbsp;be&amp;nbsp;used&amp;nbsp;to&amp;nbsp;render&amp;nbsp;the&amp;nbsp;ghost&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;51&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;52&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;alpha&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;53&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;desired&amp;nbsp;transparency&amp;nbsp;value,&amp;nbsp;to&amp;nbsp;be&amp;nbsp;forwarded&amp;nbsp;to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;54&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;Graphics#setAlpha(int)}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;55&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;transparency&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;56&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;RBG&amp;nbsp;value&amp;nbsp;of&amp;nbsp;the&amp;nbsp;color&amp;nbsp;that&amp;nbsp;is&amp;nbsp;to&amp;nbsp;be&amp;nbsp;regarded&amp;nbsp;as&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;57&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transparent.&amp;nbsp;May&amp;nbsp;be&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;null&lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;58&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;59&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GhostImageFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;final&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;source,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;alpha,&amp;nbsp;RGB&amp;nbsp;transparency&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;60&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.alpha&amp;nbsp;=&amp;nbsp;alpha;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;61&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;62&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;sourceFigureRelativePrecisionBounds&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PrecisionRectangle&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;63&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;source.getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getCopy&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;64&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;65&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Image&amp;nbsp;offscreenImage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Image&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Display.getCurrent&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;66&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sourceFigureRelativePrecisionBounds.width,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;67&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sourceFigureRelativePrecisionBounds.height&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;68&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;69&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;GC&amp;nbsp;gc&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GC&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;offscreenImage&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;70&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;SWTGraphics&amp;nbsp;swtGraphics&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;SWTGraphics&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;gc&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;71&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;swtGraphics.translate&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;-sourceFigureRelativePrecisionBounds.x,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;72&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;-sourceFigureRelativePrecisionBounds.y&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;73&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;source.paint&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;swtGraphics&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;74&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;75&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ghostImageData&amp;nbsp;=&amp;nbsp;offscreenImage.getImageData&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;76&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;transparency&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;77&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ghostImageData.transparentPixel&amp;nbsp;=&amp;nbsp;ghostImageData.palette&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;78&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getPixel&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;transparency&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;79&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;80&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;81&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;offscreenImage.dispose&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;82&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;swtGraphics.dispose&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;83&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;gc.dispose&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;84&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;85&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;86&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;87&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Figure#paintFigure(Graphics)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;88&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;89&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;paintFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Graphics&amp;nbsp;graphics&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;90&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Image&amp;nbsp;feedbackImage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Image&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Display.getCurrent&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;ghostImageData&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;91&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;graphics.setAlpha&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;alpha&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;92&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;graphics.setClip&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getCopy&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;93&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;graphics.drawImage&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackImage,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;ghostImageData.width,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;94&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ghostImageData.height,&amp;nbsp;getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.x,&amp;nbsp;getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.y,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;95&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.width,&amp;nbsp;getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.height&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;96&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackImage.dispose&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;97&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;98&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The second central piece of the solution of course is the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ScrollableSelectionFeedbackEditPolicy&lt;/span&gt;. Upon primary selection of its host &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;IScrollableEditPart&lt;/span&gt;, it creates&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;GhostImageFigures&lt;/span&gt; for all nodes nested within the host figure's &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Viewport&lt;/span&gt; and all connection figures related to them. To keep up with changes to the host figure and its nested viewport respectively, a couple of listeners are required, which are registered and unregistered in the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;activate()&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;deactivate()&lt;/span&gt; methods respectively. Note that the layout constraints for the feedback figures are determined by translating the original figure's bounds into absolute coordinates first, then into coordinates relative to the feedback layer (which is chosen to be the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SCALABLE_FEEDBACK_LAYER&lt;/span&gt;), so feedback is correctly displayed during zooming as well.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;span style="color: grey;"&gt;001&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: grey;"&gt;002&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&lt;copyright&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;003&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;004&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Copyright&amp;nbsp;(C)&amp;nbsp;2005,&amp;nbsp;2008&amp;nbsp;Research&amp;nbsp;Group&amp;nbsp;Software&amp;nbsp;Construction,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;005&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWTH&amp;nbsp;Aachen&amp;nbsp;University,&amp;nbsp;Germany.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;006&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;007&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;All&amp;nbsp;rights&amp;nbsp;reserved.&amp;nbsp;This&amp;nbsp;program&amp;nbsp;and&amp;nbsp;the&amp;nbsp;accompanying&amp;nbsp;materials&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;008&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;are&amp;nbsp;made&amp;nbsp;available&amp;nbsp;under&amp;nbsp;the&amp;nbsp;terms&amp;nbsp;of&amp;nbsp;the&amp;nbsp;Eclipse&amp;nbsp;Public&amp;nbsp;License&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;009&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;version&amp;nbsp;1.0,&amp;nbsp;which&amp;nbsp;accompanies&amp;nbsp;this&amp;nbsp;distribution,&amp;nbsp;and&amp;nbsp;is&amp;nbsp;available&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;010&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;at&amp;nbsp;http://www.eclipse.org/legal/epl-v10.html.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;011&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;012&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Contributors:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;013&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;Research&amp;nbsp;Group&amp;nbsp;Software&amp;nbsp;Construction&amp;nbsp;-&amp;nbsp;Initial&amp;nbsp;API&amp;nbsp;and&amp;nbsp;implementation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;014&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;015&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;016&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;017&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;sc.viper.gef.scrolling;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;018&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;019&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.beans.PropertyChangeEvent;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;020&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.beans.PropertyChangeListener;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;021&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.util.ArrayList;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;022&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.util.HashSet;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;023&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.util.Iterator;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;024&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.util.List;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;025&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;026&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.core.runtime.Assert;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;027&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.FigureListener;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;028&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.Graphics;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;029&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.IFigure;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;030&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.LayoutListener;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;031&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.ScrollPane;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;032&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.Viewport;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;033&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.ViewportUtilities;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;034&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.geometry.Insets;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;035&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.geometry.Rectangle;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;036&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.gef.ConnectionEditPart;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;037&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.gef.EditPart;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;038&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.gef.GraphicalEditPart;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;039&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.gef.LayerConstants;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;040&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.gef.editpolicies.SelectionEditPolicy;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;041&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;042&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;sc.viper.gef.EditPartUtilities;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;043&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;044&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;045&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;A&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;SelectionEditPolicy}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;,&amp;nbsp;which&amp;nbsp;may&amp;nbsp;be&amp;nbsp;registered&amp;nbsp;to&amp;nbsp;an&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;046&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;IScrollableEditPart}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;to&amp;nbsp;provide&amp;nbsp;primary&amp;nbsp;selection&amp;nbsp;feedback&amp;nbsp;by&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;047&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;rendering&amp;nbsp;the&amp;nbsp;hidden&amp;nbsp;contents&amp;nbsp;of&amp;nbsp;the&amp;nbsp;host&amp;nbsp;figure's&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;ScrollPane}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;'s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;048&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;nested&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;Viewport}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;by&amp;nbsp;means&amp;nbsp;of&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;GhostImageFigure}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;s.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;049&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;050&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Philip&amp;nbsp;Ritzkopf&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;051&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Alexander&amp;nbsp;Nyssen&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;052&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@version&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;$Revision:&amp;nbsp;1.37&amp;nbsp;$&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;053&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;054&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ScrollableSelectionFeedbackEditPolicy&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;SelectionEditPolicy&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;055&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;056&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackAlpha&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;100&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;057&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;058&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;final&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;List&amp;nbsp;feedbackFigures&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ArrayList&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;059&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;060&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;final&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;FigureListener&amp;nbsp;figureListener&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;FigureListener&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;061&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;062&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;figureMoved&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;source&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;063&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;react&amp;nbsp;on&amp;nbsp;host&amp;nbsp;figure&amp;nbsp;move&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;064&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getSelected&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;==&amp;nbsp;EditPart.SELECTED_PRIMARY&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;065&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;updateFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;066&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;067&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;068&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;069&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;070&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;final&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;LayoutListener&amp;nbsp;layoutListener&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;LayoutListener.Stub&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;071&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;072&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;invalidate&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;container&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;073&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;react&amp;nbsp;on&amp;nbsp;host&amp;nbsp;figure&amp;nbsp;resize&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;074&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getSelected&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;==&amp;nbsp;EditPart.SELECTED_PRIMARY&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;075&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;updateFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;076&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;077&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;078&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;079&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;080&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;final&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PropertyChangeListener&amp;nbsp;viewportViewLocationChangeListener&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PropertyChangeListener&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;081&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;082&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;propertyChange&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;PropertyChangeEvent&amp;nbsp;event&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;083&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;Make&amp;nbsp;sure&amp;nbsp;the&amp;nbsp;host&amp;nbsp;edit&amp;nbsp;part&amp;nbsp;is&amp;nbsp;always&amp;nbsp;selected&amp;nbsp;as&amp;nbsp;primary&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;084&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;selection,&amp;nbsp;when&amp;nbsp;it&amp;nbsp;fires&amp;nbsp;a&amp;nbsp;property&amp;nbsp;change&amp;nbsp;event&amp;nbsp;from&amp;nbsp;its&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;085&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;viewport&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;086&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;event.getSource&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;==&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;((&lt;/span&gt;&lt;span style="color: black;"&gt;IScrollableFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;087&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getScrollPane&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getViewport&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;088&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;amp;&amp;amp; getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getSelected&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;!=&amp;nbsp;EditPart.SELECTED_PRIMARY&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;089&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getViewer&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.deselectAll&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;090&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getViewer&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.select&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;091&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;092&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;update&amp;nbsp;feedback&amp;nbsp;in&amp;nbsp;case&amp;nbsp;the&amp;nbsp;viewport's&amp;nbsp;view&amp;nbsp;location&amp;nbsp;changed&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;093&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;event.getPropertyName&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.equals&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Viewport.PROPERTY_VIEW_LOCATION&lt;/span&gt;&lt;span style="color: black;"&gt;))&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;094&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;updateFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;095&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;096&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;097&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;098&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;099&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;100&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.gef.editpolicies.SelectionEditPolicy#activate()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;101&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;102&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;activate&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;103&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.activate&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;104&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;register&amp;nbsp;all&amp;nbsp;necessary&amp;nbsp;listeners&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;105&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Iterator&amp;nbsp;iterator&amp;nbsp;=&amp;nbsp;ViewportUtilities.getViewportsPath&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;106&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigureViewport&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;107&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ViewportUtilities.getRootViewport&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()))&lt;/span&gt;&lt;span style="color: black;"&gt;.iterator&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;iterator&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;108&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.hasNext&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;109&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Viewport&amp;nbsp;viewport&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Viewport&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;iterator.next&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;110&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;viewport&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;111&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.addPropertyChangeListener&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;viewportViewLocationChangeListener&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;112&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;113&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;114&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.addLayoutListener&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;layoutListener&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;115&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.addFigureListener&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;figureListener&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;116&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;117&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;118&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;119&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Adds&amp;nbsp;a&amp;nbsp;given&amp;nbsp;feedback&amp;nbsp;figure&amp;nbsp;to&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;layer&amp;nbsp;(using&amp;nbsp;the&amp;nbsp;provided&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;120&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;bounds&amp;nbsp;to&amp;nbsp;layout&amp;nbsp;it)&amp;nbsp;and&amp;nbsp;registers&amp;nbsp;it&amp;nbsp;in&amp;nbsp;the&amp;nbsp;local&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;121&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;#feedbackFigures}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;list.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;122&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;123&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;feedbackFigure&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;124&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;figure&amp;nbsp;to&amp;nbsp;add&amp;nbsp;to&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;layer&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;125&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;feedbackFigureAbsoluteBounds&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;126&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the&amp;nbsp;absolute&amp;nbsp;bounds&amp;nbsp;used&amp;nbsp;to&amp;nbsp;layout&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;figure&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;127&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;128&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;addFeedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;feedbackFigure,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;129&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;feedbackFigureAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;130&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getFeedbackLayer&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.translateToRelative&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigureAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;131&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getFeedbackLayer&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.translateFromParent&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigureAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;132&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigure.setBounds&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigureAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;133&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;addFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;134&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigures.add&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;135&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;136&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;137&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;138&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Creates&amp;nbsp;a&amp;nbsp;ghost&amp;nbsp;image&amp;nbsp;feedback&amp;nbsp;figure&amp;nbsp;for&amp;nbsp;the&amp;nbsp;given&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;139&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;ConnectionEditPart}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;'s&amp;nbsp;figure&amp;nbsp;and&amp;nbsp;adds&amp;nbsp;it&amp;nbsp;to&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;layer.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;140&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;141&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;connectionEditPart&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;142&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;143&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;createConnectionFeedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;144&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ConnectionEditPart&amp;nbsp;connectionEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;145&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;addFeedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GhostImageFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;connectionEditPart.getFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;146&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getAlpha&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;getLayer&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;LayerConstants.CONNECTION_LAYER&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;147&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getBackgroundColor&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getRGB&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;148&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;connectionEditPart.getFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;149&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;150&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;151&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;152&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Creates&amp;nbsp;the&amp;nbsp;connection&amp;nbsp;layer&amp;nbsp;feedback&amp;nbsp;figures.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;153&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;154&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;createConnectionFeedbackFigures&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;155&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;HashSet&amp;nbsp;transitiveNestedConnections&amp;nbsp;=&amp;nbsp;EditPartUtilities&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;156&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getAllNestedConnectionEditParts&lt;/span&gt;&lt;span style="color: black;"&gt;((&lt;/span&gt;&lt;span style="color: black;"&gt;GraphicalEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;157&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;158&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Iterator&amp;nbsp;iterator&amp;nbsp;=&amp;nbsp;transitiveNestedConnections.iterator&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;iterator&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;159&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.hasNext&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;160&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Object&amp;nbsp;connection&amp;nbsp;=&amp;nbsp;iterator.next&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;161&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;connection&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;instanceof&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ConnectionEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;162&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;createConnectionFeedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;((&lt;/span&gt;&lt;span style="color: black;"&gt;ConnectionEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;connection&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;163&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;164&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;165&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;166&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;167&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;168&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;169&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Creates&amp;nbsp;a&amp;nbsp;ghost&amp;nbsp;image&amp;nbsp;feedback&amp;nbsp;figure&amp;nbsp;for&amp;nbsp;the&amp;nbsp;given&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;170&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;GraphicalEditPart}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;'s&amp;nbsp;figure&amp;nbsp;and&amp;nbsp;adds&amp;nbsp;it&amp;nbsp;to&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;layer.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;171&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;172&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;childEditPart&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;173&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;174&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;createNodeFeedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;GraphicalEditPart&amp;nbsp;childEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;175&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;addFeedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GhostImageFigure&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;childEditPart.getFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;176&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getAlpha&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;getAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;childEditPart.getFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;177&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;178&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;179&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;180&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Creates&amp;nbsp;the&amp;nbsp;primary&amp;nbsp;layer&amp;nbsp;feedback&amp;nbsp;figures.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;181&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;182&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;createNodeFeedbackFigures&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;183&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;184&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;create&amp;nbsp;ghost&amp;nbsp;feedback&amp;nbsp;for&amp;nbsp;node&amp;nbsp;children&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;185&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Iterator&amp;nbsp;iterator&amp;nbsp;=&amp;nbsp;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getChildren&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.iterator&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;iterator&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;186&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.hasNext&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;187&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Object&amp;nbsp;child&amp;nbsp;=&amp;nbsp;iterator.next&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;188&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;child&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;instanceof&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GraphicalEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;189&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;createNodeFeedbackFigure&lt;/span&gt;&lt;span style="color: black;"&gt;((&lt;/span&gt;&lt;span style="color: black;"&gt;GraphicalEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;child&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;190&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;191&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;192&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;193&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;194&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;195&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.gef.editpolicies.SelectionEditPolicy#deactivate()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;196&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;197&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;deactivate&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;198&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;remove&amp;nbsp;all&amp;nbsp;registered&amp;nbsp;listeners&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;199&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.removeFigureListener&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;figureListener&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;200&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.removeLayoutListener&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;layoutListener&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;201&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Iterator&amp;nbsp;iterator&amp;nbsp;=&amp;nbsp;ViewportUtilities.getViewportsPath&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;202&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigureViewport&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;203&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ViewportUtilities.getRootViewport&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;()))&lt;/span&gt;&lt;span style="color: black;"&gt;.iterator&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;iterator&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;204&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.hasNext&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;205&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Viewport&amp;nbsp;viewport&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Viewport&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;iterator.next&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;206&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;viewport&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;207&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.removePropertyChangeListener&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;viewportViewLocationChangeListener&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;208&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;209&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;210&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.deactivate&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;211&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;212&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;213&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;214&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Used&amp;nbsp;to&amp;nbsp;obtain&amp;nbsp;the&amp;nbsp;alpha&amp;nbsp;value&amp;nbsp;used&amp;nbsp;for&amp;nbsp;all&amp;nbsp;feedback&amp;nbsp;figures.&amp;nbsp;The&amp;nbsp;valid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;215&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;range&amp;nbsp;is&amp;nbsp;the&amp;nbsp;one&amp;nbsp;documented&amp;nbsp;for&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;Graphics#setAlpha(int)}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;216&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;217&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@return&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;the&amp;nbsp;alpha&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;218&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;219&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;getAlpha&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;220&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackAlpha;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;221&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;222&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;223&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;224&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.gef.editpolicies.SelectionEditPolicy#getFeedbackLayer()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;225&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;226&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;getFeedbackLayer&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;227&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;getLayer&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;LayerConstants.SCALED_FEEDBACK_LAYER&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;228&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;229&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;230&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;231&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Provides&amp;nbsp;access&amp;nbsp;to&amp;nbsp;the&amp;nbsp;host&amp;nbsp;figure's&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;Viewport}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;232&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;233&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@return&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;234&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;235&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Viewport&amp;nbsp;getHostFigureViewport&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;236&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;((&lt;/span&gt;&lt;span style="color: black;"&gt;IScrollableFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;.getScrollPane&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;237&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getViewport&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;238&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;239&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;240&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;241&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Removes&amp;nbsp;all&amp;nbsp;feedback&amp;nbsp;figures&amp;nbsp;from&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;layer&amp;nbsp;as&amp;nbsp;well&amp;nbsp;as&amp;nbsp;from&amp;nbsp;the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;242&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;#feedbackFigures}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;list.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;243&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;244&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;hideFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;245&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Iterator&amp;nbsp;iterator&amp;nbsp;=&amp;nbsp;feedbackFigures.iterator&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;iterator.hasNext&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;246&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;removeFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;((&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;iterator.next&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;247&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;248&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;feedbackFigures.clear&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;249&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;250&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;251&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;252&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.gef.editpolicies.SelectionEditPolicy#hideSelection()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;253&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;254&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;hideSelection&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;255&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;hideFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;256&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;257&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;258&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;259&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Used&amp;nbsp;to&amp;nbsp;specify&amp;nbsp;the&amp;nbsp;alpha&amp;nbsp;value&amp;nbsp;used&amp;nbsp;for&amp;nbsp;all&amp;nbsp;feedback&amp;nbsp;figures.&amp;nbsp;The&amp;nbsp;valid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;260&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;range&amp;nbsp;is&amp;nbsp;the&amp;nbsp;one&amp;nbsp;documented&amp;nbsp;for&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;Graphics#setAlpha(int)}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;261&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;262&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;alpha&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;263&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;264&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setAlpha&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;alpha&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;265&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.feedbackAlpha&amp;nbsp;=&amp;nbsp;alpha;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;266&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;267&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;268&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;269&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.gef.editpolicies.AbstractEditPolicy#setHost(org.eclipse.gef&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;270&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.EditPart)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;271&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;272&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setHost&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;EditPart&amp;nbsp;host&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;273&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Assert.isLegal&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;host&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;instanceof&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;IScrollableEditPart&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;274&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.setHost&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;host&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;275&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;276&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;277&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;278&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Creates&amp;nbsp;feedback&amp;nbsp;figures&amp;nbsp;for&amp;nbsp;all&amp;nbsp;node&amp;nbsp;figures&amp;nbsp;nested&amp;nbsp;within&amp;nbsp;the&amp;nbsp;host&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;279&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;figure's&amp;nbsp;viewport,&amp;nbsp;as&amp;nbsp;well&amp;nbsp;as&amp;nbsp;for&amp;nbsp;all&amp;nbsp;incoming&amp;nbsp;and&amp;nbsp;outgoing&amp;nbsp;connections&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;280&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;of&amp;nbsp;these&amp;nbsp;nodes.&amp;nbsp;Feedback&amp;nbsp;figures&amp;nbsp;are&amp;nbsp;only&amp;nbsp;created&amp;nbsp;in&amp;nbsp;case&amp;nbsp;there&amp;nbsp;are&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;281&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;children&amp;nbsp;or&amp;nbsp;connections,&amp;nbsp;which&amp;nbsp;are&amp;nbsp;not&amp;nbsp;fully&amp;nbsp;visible.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;282&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;283&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;showFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;284&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;ensure&amp;nbsp;primary&amp;nbsp;and&amp;nbsp;connection&amp;nbsp;layer&amp;nbsp;are&amp;nbsp;revalidated,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;285&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;so&amp;nbsp;the&amp;nbsp;bounds&amp;nbsp;of&amp;nbsp;all&amp;nbsp;their&amp;nbsp;child&amp;nbsp;figures,&amp;nbsp;which&amp;nbsp;are&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;286&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;used&amp;nbsp;to&amp;nbsp;calculate&amp;nbsp;the&amp;nbsp;feedback&amp;nbsp;figure&amp;nbsp;constraints,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;287&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;are&amp;nbsp;valid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;288&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getLayer&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;LayerConstants.CONNECTION_LAYER&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;.validate&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;289&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getLayer&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;LayerConstants.PRIMARY_LAYER&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;.validate&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;290&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;291&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;check&amp;nbsp;if&amp;nbsp;there&amp;nbsp;is&amp;nbsp;a&amp;nbsp;node&amp;nbsp;child&amp;nbsp;exceeding&amp;nbsp;the&amp;nbsp;client&amp;nbsp;are&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;292&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;clientArea&amp;nbsp;=&amp;nbsp;getAbsoluteClientArea&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;293&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;boolean&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;primaryLayerChildExceedsViewport&amp;nbsp;=&amp;nbsp;!clientArea&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;294&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.equals&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getAbsoluteViewportArea&lt;/span&gt;&lt;span style="color: black;"&gt;(((&lt;/span&gt;&lt;span style="color: black;"&gt;IScrollableFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;295&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getScrollPane&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getViewport&lt;/span&gt;&lt;span style="color: black;"&gt;()))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;296&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;check&amp;nbsp;if&amp;nbsp;there&amp;nbsp;is&amp;nbsp;a&amp;nbsp;connection&amp;nbsp;exceeding&amp;nbsp;the&amp;nbsp;client&amp;nbsp;area&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;297&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;boolean&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;connectionLayerChildExceedsClientArea&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;false&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;298&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;List&amp;nbsp;connectionLayerChildren&amp;nbsp;=&amp;nbsp;getLayer&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;LayerConstants.CONNECTION_LAYER&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;299&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getChildren&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;300&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Iterator&amp;nbsp;iterator&amp;nbsp;=&amp;nbsp;connectionLayerChildren.iterator&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;iterator&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;301&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.hasNext&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;302&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;amp;&amp;amp; !connectionLayerChildExceedsClientArea;&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;303&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;connectionLayerChild&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;iterator.next&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;304&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;connectionLayerChildExceedsClientArea&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;ViewportUtilities&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;305&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getNearestEnclosingViewport&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;connectionLayerChild&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;==&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;((&lt;/span&gt;&lt;span style="color: black;"&gt;IScrollableFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHostFigure&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;306&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getScrollPane&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getViewport&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;amp;&amp;amp;&amp;nbsp;!clientArea.getExpanded&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;307&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Insets&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #990000;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;))&lt;/span&gt;&lt;span style="color: black;"&gt;.contains&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;308&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;connectionLayerChild&lt;/span&gt;&lt;span style="color: black;"&gt;)))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;309&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;310&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;311&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;Only&amp;nbsp;show&amp;nbsp;feedback&amp;nbsp;if&amp;nbsp;there&amp;nbsp;is&amp;nbsp;a&amp;nbsp;child&amp;nbsp;or&amp;nbsp;connection&amp;nbsp;figure&amp;nbsp;whose&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;312&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;bounds&amp;nbsp;exceed&amp;nbsp;the&amp;nbsp;client&amp;nbsp;area&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;313&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;primaryLayerChildExceedsViewport&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;314&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;||&amp;nbsp;connectionLayerChildExceedsClientArea&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;315&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;createNodeFeedbackFigures&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;316&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;createConnectionFeedbackFigures&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;317&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;318&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;319&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;320&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;321&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.gef.editpolicies.SelectionEditPolicy#showSelection()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;322&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;323&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;showSelection&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;324&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;force&amp;nbsp;ViewportExposeHelper&amp;nbsp;to&amp;nbsp;perform&amp;nbsp;auto&amp;nbsp;scrolling&amp;nbsp;before&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;325&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;showing&amp;nbsp;the&amp;nbsp;feedback.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;326&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getViewer&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.reveal&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;327&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;updateFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;328&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;329&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;330&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;331&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Removes&amp;nbsp;any&amp;nbsp;existing&amp;nbsp;feedback&amp;nbsp;figures&amp;nbsp;by&amp;nbsp;delegating&amp;nbsp;to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;332&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;#hideFeedback()}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;.&amp;nbsp;In&amp;nbsp;case&amp;nbsp;the&amp;nbsp;host&amp;nbsp;edit&amp;nbsp;part&amp;nbsp;is&amp;nbsp;the&amp;nbsp;primary&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;333&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;selection,&amp;nbsp;recreates&amp;nbsp;feedback&amp;nbsp;figures&amp;nbsp;via&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;#showFeedback()}&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;334&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;335&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;updateFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;336&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;hideFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;337&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getHost&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getSelected&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;==&amp;nbsp;EditPart.SELECTED_PRIMARY&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;338&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;showFeedback&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;339&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;340&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;341&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;342&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;getAbsoluteBounds&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;figure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;343&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;bounds&amp;nbsp;=&amp;nbsp;figure.getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getCopy&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;344&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;figure.translateToAbsolute&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;bounds&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;345&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;bounds;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;346&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;347&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;348&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;getAbsoluteClientArea&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;figure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;349&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;clientArea&amp;nbsp;=&amp;nbsp;figure.getClientArea&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getCopy&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;350&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;figure.translateToParent&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;clientArea&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;351&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;figure.translateToAbsolute&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;clientArea&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;352&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;clientArea;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;353&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;354&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;355&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;getAbsoluteViewportArea&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Viewport&amp;nbsp;viewport&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;356&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;viewportParentBounds&amp;nbsp;=&amp;nbsp;viewport.getParent&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;357&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.getCopy&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;358&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;359&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;widthMax&amp;nbsp;=&amp;nbsp;viewport.getHorizontalRangeModel&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getMaximum&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;360&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;widthMin&amp;nbsp;=&amp;nbsp;viewport.getHorizontalRangeModel&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getMinimum&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;361&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;heightMax&amp;nbsp;=&amp;nbsp;viewport.getVerticalRangeModel&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getMaximum&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;362&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;heightMin&amp;nbsp;=&amp;nbsp;viewport.getVerticalRangeModel&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getMinimum&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;363&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;364&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;viewportParentBounds&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;365&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;.setSize&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;widthMax&amp;nbsp;-&amp;nbsp;widthMin,&amp;nbsp;heightMax&amp;nbsp;-&amp;nbsp;heightMin&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;366&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;viewportParentBounds.translate&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;widthMin,&amp;nbsp;heightMin&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;367&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;viewportParentBounds.translate&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;viewport.getViewLocation&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.getNegated&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;368&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;viewport.getParent&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.translateToAbsolute&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;viewportParentBounds&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;369&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;viewportParentBounds;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;370&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;371&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;&lt;br /&gt;Those interfaces created to allow type-safe access to the host edit part's figure, namely &amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;IScrollableFigure&lt;/span&gt; and&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;IScrollableEditPart&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;are rather unexciting, thus I will skip them here,&amp;nbsp;as well as the utility classes (&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;EditPartSupport&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ViewportUtilities&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;) we introduced to support some of the calculations within the edit policy.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;What may be of interest however is how the circuit figure of the logic example can be beautified with respect to its scroll bars (&lt;i&gt;as mentioned above, the screenshots were produced after having performed some beautifications on the GEF logic example&lt;/i&gt;):&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_DnnCLUVUeJM/S4Lts1BgzNI/AAAAAAAAAFc/Gmjpt1uh04I/s1600-h/Bildschirmfoto+2010-02-22+um+21.48.21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_DnnCLUVUeJM/S4Lts1BgzNI/AAAAAAAAAFc/Gmjpt1uh04I/s320/Bildschirmfoto+2010-02-22+um+21.48.21.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_DnnCLUVUeJM/S4Lt-FB9fFI/AAAAAAAAAFk/AI6eLHVXYGY/s1600-h/Bildschirmfoto+2010-02-22+um+21.49.38.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_DnnCLUVUeJM/S4Lt-FB9fFI/AAAAAAAAAFk/AI6eLHVXYGY/s320/Bildschirmfoto+2010-02-22+um+21.49.38.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It is indeed done by exchanging the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ScrollPane&lt;/span&gt;&amp;nbsp;being used within the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;CircuitFigure&lt;/span&gt; of the logic example with a custom implementation we have chosen to name&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PuristicScrollPane&lt;/span&gt;. It uses special &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PuristicScrollBars&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;, which do not show a 'thumb' and use non-opaque navigation buttons.&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Here is the code:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;span style="color: grey;"&gt;001&lt;/span&gt;&amp;nbsp;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt; &lt;span style="color: grey;"&gt;002&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&lt;copyright&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;003&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;004&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Copyright&amp;nbsp;(C)&amp;nbsp;2005,&amp;nbsp;2008&amp;nbsp;Research&amp;nbsp;Group&amp;nbsp;Software&amp;nbsp;Construction,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;005&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWTH&amp;nbsp;Aachen&amp;nbsp;University,&amp;nbsp;Germany.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;006&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;007&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;All&amp;nbsp;rights&amp;nbsp;reserved.&amp;nbsp;This&amp;nbsp;program&amp;nbsp;and&amp;nbsp;the&amp;nbsp;accompanying&amp;nbsp;materials&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;008&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;are&amp;nbsp;made&amp;nbsp;available&amp;nbsp;under&amp;nbsp;the&amp;nbsp;terms&amp;nbsp;of&amp;nbsp;the&amp;nbsp;Eclipse&amp;nbsp;Public&amp;nbsp;License&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;009&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;version&amp;nbsp;1.0,&amp;nbsp;which&amp;nbsp;accompanies&amp;nbsp;this&amp;nbsp;distribution,&amp;nbsp;and&amp;nbsp;is&amp;nbsp;available&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;010&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;at&amp;nbsp;http://www.eclipse.org/legal/epl-v10.html.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;011&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;012&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;Contributors:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;013&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;Research&amp;nbsp;Group&amp;nbsp;Software&amp;nbsp;Construction&amp;nbsp;-&amp;nbsp;Initial&amp;nbsp;API&amp;nbsp;and&amp;nbsp;implementation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;014&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;015&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f7f9f;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;016&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;017&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;018&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;019&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.beans.PropertyChangeEvent;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;020&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;java.beans.PropertyChangeListener;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;021&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;022&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;org.eclipse.draw2d.geometry.Rectangle;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;023&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;024&lt;/span&gt;&amp;nbsp;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PuristicScrollPane&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ScrollPane&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;025&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;026&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;027&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;A&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f3fbf;"&gt;{@link&amp;nbsp;ScrollBar}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;with&amp;nbsp;no&amp;nbsp;thumb&amp;nbsp;and&amp;nbsp;non-opaque&amp;nbsp;buttons.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;028&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;029&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Alexander&amp;nbsp;Nyssen&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;030&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@author&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;Philip&amp;nbsp;Ritzkopf&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;031&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;032&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PuristicScrollBar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ScrollBar&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;033&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;034&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;035&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;* Instantiates&amp;nbsp;a&amp;nbsp;new&amp;nbsp;transparent&amp;nbsp;scroll&amp;nbsp;bar.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;036&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;037&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;isHorizontal&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;038&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;whether this scroll bar is used as a horizontal one.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;039&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;040&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PuristicScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;boolean&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;isHorizontal&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;041&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;042&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;setHorizontal&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;isHorizontal&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;043&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;044&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;045&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;046&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.ScrollBar#createDefaultDownButton()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;047&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;048&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Clickable&amp;nbsp;createDefaultDownButton&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;049&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Clickable&amp;nbsp;buttonDown&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.createDefaultDownButton&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;050&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;buttonDown.setBorder&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;051&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;buttonDown.setOpaque&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;false&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;052&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;buttonDown;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;053&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;054&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;055&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;056&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.ScrollBar#createDefaultThumb()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;057&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;058&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;createDefaultThumb&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;059&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;060&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;061&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;062&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;063&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.ScrollBar#createDefaultUpButton()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;064&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;065&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Clickable&amp;nbsp;createDefaultUpButton&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;066&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Clickable&amp;nbsp;buttonUp&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.createDefaultUpButton&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;067&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;buttonUp.setBorder&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;068&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;buttonUp.setOpaque&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;false&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;069&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;buttonUp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;070&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;071&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;072&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;073&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.ScrollBar#createPageDown()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;074&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;075&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Clickable&amp;nbsp;createPageDown&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;076&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;077&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;078&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;079&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;080&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.ScrollBar#createPageUp()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;081&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;082&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Clickable&amp;nbsp;createPageUp&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;083&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;return&amp;nbsp;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;084&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;085&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;086&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;087&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;PropertyChangeListener#propertyChange(java.beans.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;088&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PropertyChangeEvent&amp;nbsp;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;089&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;090&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;propertyChange&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;PropertyChangeEvent&amp;nbsp;event&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;091&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;event.getSource&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;instanceof&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;RangeModel&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;092&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getButtonDown&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.setVisible&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;093&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getValue&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;!=&amp;nbsp;getMaximum&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;nbsp;getExtent&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;094&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getButtonUp&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.setVisible&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getValue&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;!=&amp;nbsp;getMinimum&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;095&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;096&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.propertyChange&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;event&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;097&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;098&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;099&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;100&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;101&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.ScrollPane#createVerticalScrollBar()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;102&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;103&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;createVerticalScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;104&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;PuristicScrollBar&amp;nbsp;verticalScrollBar&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PuristicScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;false&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;105&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;setVerticalScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;verticalScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;106&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;107&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;108&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;109&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.ScrollPane#createHorizontalScrollBar()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;110&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;111&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;createHorizontalScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;112&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;PuristicScrollBar&amp;nbsp;horizontalScrollBar&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;PuristicScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;113&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;setHorizontalScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;horizontalScrollBar&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;114&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;115&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;116&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;117&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.Figure#paintChildren(org.eclipse.draw2d.Graphics)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;118&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;119&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;paintChildren&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;Graphics&amp;nbsp;graphics&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;120&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&amp;nbsp;child;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;121&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;don't&amp;nbsp;clip&amp;nbsp;scroll&amp;nbsp;bar&amp;nbsp;area&amp;nbsp;(as&amp;nbsp;there&amp;nbsp;is&amp;nbsp;no&amp;nbsp;thumb)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;122&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Rectangle&amp;nbsp;clip&amp;nbsp;=&amp;nbsp;Rectangle.SINGLETON;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;123&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;i&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #990000;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;getChildren&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.size&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&amp;nbsp;i++&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;124&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;child&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IFigure&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getChildren&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.get&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;i&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;125&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;child.isVisible&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;amp;&amp;amp;&amp;nbsp;child.intersects&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;graphics.getClip&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;clip&lt;/span&gt;&lt;span style="color: black;"&gt;)))&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;126&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;graphics.clipRect&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;127&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;child.paint&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;graphics&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;128&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;graphics.restoreState&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;129&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;130&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;131&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;132&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;133&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;134&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f9fbf;"&gt;@see&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;org.eclipse.draw2d.Figure#invalidate()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;135&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;136&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;invalidate&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;137&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f7f5f;"&gt;//&amp;nbsp;ensure&amp;nbsp;scroll&amp;nbsp;bar&amp;nbsp;area&amp;nbsp;is&amp;nbsp;marked&amp;nbsp;dirty&amp;nbsp;as&amp;nbsp;well.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;138&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;getUpdateManager&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;.addDirtyRegion&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;this,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.getBounds&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;139&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;.invalidate&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;140&lt;/span&gt;&amp;nbsp;&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: grey;"&gt;141&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Note that in order to achieve that children are also painted below the now transparent scroll bars, the&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;paintChildren()&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;invalidate()&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;methods within the&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PuristicScrollPane&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;have to be refined accordingly. To achieve that the navigation buttons are only shown in case they are needed, the &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PuristicScrollBar&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; implementation reacts to changes to its underlying range model by means of the &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PropertyChangeListener&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; mechanism.&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If with some of the aforementioned I could raise your interest, I propose you simply try the feature out yourself. All source code related to it (including those utility classes not explicitly shown here) is included in a &lt;a href="https://bugs.eclipse.org/bugs/attachment.cgi?id=159855"&gt;patch&lt;/a&gt; I added to&amp;nbsp;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=303557"&gt;bug #303557&lt;/a&gt;&amp;nbsp;(which&amp;nbsp;I have created to contribute the feature to GEF) as well as another &lt;a href="https://bugs.eclipse.org/bugs/attachment.cgi?id=159667"&gt;patch&lt;/a&gt;&amp;nbsp;(which contains a ViewportUtilities helper class that is used by the contribution) I had created to address aforementioned clipping problems as part of&amp;nbsp;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195527"&gt;bug #195527&lt;/a&gt;. You may thus&amp;nbsp;simply download both patches and apply them to the current HEAD version of GEF (and the GEF logic example).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://bugs.eclipse.org/bugs/attachment.cgi?id=159667"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;The patch added to &lt;i&gt;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=303557"&gt;bug #303557&lt;/a&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&amp;nbsp;may also serve as a good starting point in case you not only want to trial the logic example but apply the feature to your own code, because you can infer all that is required from those few changes, we have made to&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;CircuitFigure&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;CircuitEditPart&lt;/span&gt;&amp;nbsp;respectively.&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7387747921278902619-1461420198093222000?l=nyssen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7387747921278902619/posts/default/1461420198093222000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7387747921278902619/posts/default/1461420198093222000'/><link rel='alternate' type='text/html' href='http://nyssen.blogspot.com/2010/02/ghost-image-feedback-enhancing-support.html' title='Ghost Image Feedback - Enhancing Support for Viewports in GEF'/><author><name>Alexander Nyßen</name><uri>http://www.blogger.com/profile/10639254413012056611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_DnnCLUVUeJM/SrzMMGZFXOI/AAAAAAAAADQ/Vz1lFSodqK4/S220/cd_dr_6517.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DnnCLUVUeJM/S4EMbiSSZRI/AAAAAAAAAFE/IkRXRzrqguM/s72-c/Bildschirmfoto+2010-02-21+um+11.34.54.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7387747921278902619.post-7632242928309311030</id><published>2009-09-25T09:04:00.004+02:00</published><updated>2009-10-02T12:19:14.927+02:00</updated><title type='text'>Defining static profiles with Eclipse UML2</title><content type='html'>Having heard about &lt;a href="http://www.eclipse.org/modeling/mdt/?project=uml2"&gt;Eclipse UML2&lt;/a&gt;'s ability to support the definition of static profiles some while ago, when trying to define such a profile by myself recently, I found out that - even while the feature was built in already some while ago - there is not much documentation around.&lt;br /&gt;&lt;br /&gt;Taking my own trial-and-error history as an inspiration, I thought it could be useful to post a small step-by-step tutorial, making things easier for successors. Here it is...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Starting point is the creation of a plug-in project (let's call it '&lt;span style="font-family:courier new;"&gt;org.example.staticumlprofile&lt;/span&gt;'), containing the profile definition.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Creation and editing of the profile are the next steps. You may create and edit the profile nongraphically by means of the respective wizard and editor provided by the Eclipse UML2 project itself. I prefer to edit it graphically using the Profile Definition Diagram, supported by the UML2 Tools project.&lt;br /&gt;&lt;br /&gt;So let's create a new Profile Definition Diagram named &lt;span style="font-family:courier new;"&gt;'StaticUmlProfile.umlprofile&lt;span style="font-family:arial;"&gt;'&lt;/span&gt;&lt;/span&gt; and an underlying UML profile named &lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;'&lt;/span&gt;StaticUmlProfile.profile.uml&lt;span style="font-family:arial;"&gt;'&lt;/span&gt;&lt;/span&gt; within a '&lt;span style="font-family:courier new;"&gt;model&lt;/span&gt;' subfolder of the plug-in project.&lt;br /&gt;&lt;br /&gt;To the created profile, let's simply add a single stereotype, named '&lt;span style="font-family:courier new;"&gt;ExampleStereotype&lt;/span&gt;', which extends the UML meta-class &lt;span style="font-family:courier new;"&gt;Class&lt;/span&gt; and has a single String-valued attribute named '&lt;span style="font-family:courier new;"&gt;exampleProperty&lt;/span&gt;'. The result should look something like the following:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryVnrk86_I/AAAAAAAAAAk/24Hd1mC4zWI/s1600-h/Bildschirmfoto+2009-09-25+um+12.03.06.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 308px;" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryVnrk86_I/AAAAAAAAAAk/24Hd1mC4zWI/s400/Bildschirmfoto+2009-09-25+um+12.03.06.png" alt="" id="BLOGGER_PHOTO_ID_5385343763373419506" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Next, the profile has to be defined. That is, in contrast to a dynamic UML profile, static profiles are actually &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; defined, meaning that neither the 'Profile-&gt;Define' diagram context menu of the UML2 Tools Profile Definition Diagram editor, nor the 'Profile-&gt;Define' menu entry of the UML2 provided tree-editor is meant to be used here.&lt;br /&gt;&lt;br /&gt;Instead, the profile has to be declared as an Ecore &lt;span style="font-family:courier new;"&gt;EPackage&lt;/span&gt;, so that Java code can be generated. To do so, within the Profile Definition Diagram editor, choose to 'Apply Profile-&gt;Ecore' from the diagram context menu (right-click on diagram canvas), then 'Apply Stereotype -&gt; Ecore::EPackage' from whithin the profile context menu (right-click on profile).&lt;br /&gt;&lt;br /&gt;Within the properties view ('TaggedValues' section), specify an &lt;span style="font-family:courier new;"&gt;Ns URI&lt;/span&gt; for the profile (here: '&lt;span style="font-family:courier new;"&gt;http://org.example.staticumlprofile/StaticUmlProfile/1.0&lt;/span&gt;'), under which it gets registered and can be looked up. To ensure that the generated code has a package prefix reflecting the plug-in project's one (i.e. '&lt;span style="font-family:courier new;"&gt;org.example.staticumlprofile&lt;/span&gt;') the &lt;span style="font-family:courier new;"&gt;Base Package&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;Package Name&lt;/span&gt; have to be specified to '&lt;span style="font-family:courier new;"&gt;org.example&lt;/span&gt;' and '&lt;span style="font-family:courier new;"&gt;staticumlprofile&lt;/span&gt;' accordingly.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/SsOO_CYnDYI/AAAAAAAAAEU/Emu2zE4743A/s1600-h/Bildschirmfoto+2009-09-30+um+19.01.22.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 121px;" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/SsOO_CYnDYI/AAAAAAAAAEU/Emu2zE4743A/s400/Bildschirmfoto+2009-09-30+um+19.01.22.png" alt="" id="BLOGGER_PHOTO_ID_5387306792888241538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Then, an EMF GenModel is to be created by means of the respective 'EMF Generator Model' wizard:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryaLfuxmMI/AAAAAAAAABU/YPbi102dPh4/s1600-h/Bildschirmfoto+2009-09-25+um+12.20.28.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 396px;" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryaLfuxmMI/AAAAAAAAABU/YPbi102dPh4/s400/Bildschirmfoto+2009-09-25+um+12.20.28.png" alt="" id="BLOGGER_PHOTO_ID_5385348776715196610" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryZmAjGb5I/AAAAAAAAAA8/N1-Ttvzat1M/s1600-h/Bildschirmfoto+2009-09-25+um+12.21.00.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 396px;" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryZmAjGb5I/AAAAAAAAAA8/N1-Ttvzat1M/s400/Bildschirmfoto+2009-09-25+um+12.21.00.png" alt="" id="BLOGGER_PHOTO_ID_5385348132689571730" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DnnCLUVUeJM/SrybgGylsGI/AAAAAAAAABc/QyzDcViFSTQ/s1600-h/Bildschirmfoto+2009-09-25+um+12.21.16.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 396px;" src="http://4.bp.blogspot.com/_DnnCLUVUeJM/SrybgGylsGI/AAAAAAAAABc/QyzDcViFSTQ/s400/Bildschirmfoto+2009-09-25+um+12.21.16.png" alt="" id="BLOGGER_PHOTO_ID_5385350230309187682" border="0" /&gt;&lt;/a&gt;On the 'UML Import' page, select to 'Load' the profile, then don't bother with the warnings, you are notified about. It is strongly recommended to NOT apply other processing options than those specified by default (if the 'Duplicate Features' option is e.g. set to 'Process', the '&lt;span style="font-family:courier new;"&gt;base_Class&lt;/span&gt;' property of the stereotype within the '&lt;span style="font-family:courier new;"&gt;StaticUmlProfile.profile.uml'&lt;/span&gt;  file will be renamed to &lt;span style="font-family:courier new;"&gt;baseClass&lt;/span&gt;' within the corresponding &lt;span style="font-family:courier new;"&gt;StaticUmlProfile.ecore&lt;/span&gt; file, with the consequence that the stereotype will not be properly applicable).&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryZzg_oXoI/AAAAAAAAABM/2KpwisYbBnY/s1600-h/Bildschirmfoto+2009-09-25+um+12.21.55.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 334px; height: 400px;" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryZzg_oXoI/AAAAAAAAABM/2KpwisYbBnY/s400/Bildschirmfoto+2009-09-25+um+12.21.55.png" alt="" id="BLOGGER_PHOTO_ID_5385348364737470082" border="0" /&gt;&lt;/a&gt;On the 'Package Selection' page, 'Ecore' and 'UML' have to be specified as referenced generator models, as we do not want to generate code for them. To obtain a consistent naming of model files, one may also convert the .ecore file name to upper case (as done here).&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DnnCLUVUeJM/SsOPcCT9gzI/AAAAAAAAAEc/eJ--BeZXJBA/s1600-h/Bildschirmfoto+2009-09-30+um+19.03.25.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 334px; height: 400px;" src="http://3.bp.blogspot.com/_DnnCLUVUeJM/SsOPcCT9gzI/AAAAAAAAAEc/eJ--BeZXJBA/s400/Bildschirmfoto+2009-09-30+um+19.03.25.png" alt="" id="BLOGGER_PHOTO_ID_5387307291084948274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next, the generator model may be edited, to specify details of how EMF generates code for the profile. As we have already specified all settings relevant in this example, there is nothing to do here. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DnnCLUVUeJM/SryjF1BKmkI/AAAAAAAAACE/NhFwWD_dPvQ/s1600-h/Bildschirmfoto+2009-09-25+um+13.01.23.png"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Now, code can be generated (ensure to select this from the top node, so all required MANIFEST.MF entries, as well as the plugin.xml with all its required extensions get generated as well).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DnnCLUVUeJM/SryjmqkGLKI/AAAAAAAAACM/6z_dKGW0-Rg/s1600-h/Bildschirmfoto+2009-09-25+um+13.03.25.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://3.bp.blogspot.com/_DnnCLUVUeJM/SryjmqkGLKI/AAAAAAAAACM/6z_dKGW0-Rg/s400/Bildschirmfoto+2009-09-25+um+13.03.25.png" alt="" id="BLOGGER_PHOTO_ID_5385359139084315810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To have a simple confirmation, that the generated code is indeed used when applying the profile (at runtime), we will perform a slight change within the generated code, by changing the default value of the '&lt;span style="font-family:courier new;"&gt;example&lt;/span&gt;' property (within '&lt;span style="font-family:courier new;"&gt;ExampleStereotypeImpl&lt;/span&gt;') to &lt;span style="font-family:courier new;"&gt;"example"&lt;/span&gt; instead of '&lt;span style="font-family:courier new;"&gt;null&lt;/span&gt;':&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DnnCLUVUeJM/Sry1VOe0nVI/AAAAAAAAACk/jl-BbsS55J0/s1600-h/Bildschirmfoto+2009-09-25+um+14.19.05.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 188px;" src="http://3.bp.blogspot.com/_DnnCLUVUeJM/Sry1VOe0nVI/AAAAAAAAACk/jl-BbsS55J0/s400/Bildschirmfoto+2009-09-25+um+14.19.05.png" alt="" id="BLOGGER_PHOTO_ID_5385378630697524562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To publish the profile, a respective extension ('&lt;span style="font-family:courier new;"&gt;org.eclipse.uml2.uml.generated_package&lt;/span&gt;') has to be added to the plugin.xml, additinally to those extensions automatically generated.&lt;br /&gt;&lt;br /&gt;Ensure that the 'uri' property of the extension is set to the &lt;span style="font-family:courier new;"&gt;NS Uri&lt;/span&gt; specified within the profile, i.e. '&lt;span style="font-family:courier new;"&gt;http://org.example.staticumlprofile/StaticUmlProfile/1.0&lt;/span&gt;'. The 'location' property has to be an uri pointing to the profile&lt;span style="font-family:courier new;"&gt;&lt;/span&gt; within the '&lt;span style="font-family:courier new;"&gt;StaticUmlProfile.profile.uml&lt;/span&gt;' file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DnnCLUVUeJM/SrzBptkG4cI/AAAAAAAAAC8/Y2VTuHHnkOI/s1600-h/Bildschirmfoto+2009-09-25+um+15.11.42.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 179px;" src="http://3.bp.blogspot.com/_DnnCLUVUeJM/SrzBptkG4cI/AAAAAAAAAC8/Y2VTuHHnkOI/s400/Bildschirmfoto+2009-09-25+um+15.11.42.png" alt="" id="BLOGGER_PHOTO_ID_5385392176778109378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To retrieve the location uri, first open the '&lt;span style="font-family:courier new;"&gt;StaticUmlProfile.profile.uml&lt;/span&gt;' file in a text editor to obtain the &lt;span style="font-family:courier new;"&gt;xmi:id&lt;/span&gt; of the profile object (here it is '&lt;span style="font-family:courier new;"&gt;_ds47cam3Ed6HIN9NxFlDEw&lt;/span&gt;'):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/Sryl1QRhzlI/AAAAAAAAACU/NNhXlp5Wb3s/s1600-h/Bildschirmfoto+2009-09-25+um+13.12.57.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 249px;" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/Sryl1QRhzlI/AAAAAAAAACU/NNhXlp5Wb3s/s400/Bildschirmfoto+2009-09-25+um+13.12.57.png" alt="" id="BLOGGER_PHOTO_ID_5385361588748406354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The location uri can then be easily specified as a platform plug-in uri, which here corresponds to '&lt;span style="font-family:courier new;"&gt;platform:/plugin/org.example.staticumlprofile/model/StaticUmlProfile.profile.uml#_ds47cam3Ed6HIN9NxFlDEw&lt;/span&gt;'.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And that's it. You may now start a new Eclipse runtime to observe that your profile was correctly exported. Applying the '&lt;span style="font-family:courier new;"&gt;StaticUmlProfile&lt;/span&gt;' profile to a package, and the '&lt;span style="font-family:courier new;"&gt;Example&lt;/span&gt;' stereotype to a class within it, one should observe that the tagged value '&lt;span style="font-family:courier new;"&gt;exampleProperty&lt;/span&gt;' is correctly initialized with the &lt;span style="font-family:courier new;"&gt;"example"&lt;/span&gt; default value we have programatically specified. Thus, if you see something like the following, you have been successful:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/SrzCf-27W1I/AAAAAAAAADE/qr7e940S-8U/s1600-h/Bildschirmfoto+2009-09-25+um+15.15.31.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 241px;" src="http://1.bp.blogspot.com/_DnnCLUVUeJM/SrzCf-27W1I/AAAAAAAAADE/qr7e940S-8U/s400/Bildschirmfoto+2009-09-25+um+15.15.31.png" alt="" id="BLOGGER_PHOTO_ID_5385393109133384530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DnnCLUVUeJM/SryZzg_oXoI/AAAAAAAAABM/2KpwisYbBnY/s1600-h/Bildschirmfoto+2009-09-25+um+12.21.55.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7387747921278902619-7632242928309311030?l=nyssen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nyssen.blogspot.com/feeds/7632242928309311030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nyssen.blogspot.com/2009/09/defining-static-profiles-with-eclipse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7387747921278902619/posts/default/7632242928309311030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7387747921278902619/posts/default/7632242928309311030'/><link rel='alternate' type='text/html' href='http://nyssen.blogspot.com/2009/09/defining-static-profiles-with-eclipse.html' title='Defining static profiles with Eclipse UML2'/><author><name>Alexander Nyßen</name><uri>http://www.blogger.com/profile/10639254413012056611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_DnnCLUVUeJM/SrzMMGZFXOI/AAAAAAAAADQ/Vz1lFSodqK4/S220/cd_dr_6517.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_DnnCLUVUeJM/SryVnrk86_I/AAAAAAAAAAk/24Hd1mC4zWI/s72-c/Bildschirmfoto+2009-09-25+um+12.03.06.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
