<br style="clear:both;height:1em;">
	<div id="leftcol">
		<div class="nav-logo">
			<a href="index.php"><img src="logo.png" style="margin-left:10px; width:155px"/></a>
		</div>
		<ul id="leftnav">
		<li class="partentry" >
		Documentation
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="01-Introduction.php">Introduction</a></div>
		<ul style="display: none;" id="subToc_01-Introduction.html">
		<li id="01-Introduction.html#reflectiveComponents.html" ><a href="01-Introduction.php#reflectiveComponents.php" >Reflective Components</a></li>
		<li id="01-Introduction.html#easyToCustomize.html" ><a href="01-Introduction.php#easyToCustomize.php" >Easy to Customize</a></li>
		<li id="01-Introduction.html#architecture.html" ><a href="01-Introduction.php#architecture.php" >Architecture</a></li>
		</ul>
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="02-GettingStarted.php">Getting Started</a></div>
		<ul style="display: none;" id="subToc_02-GettingStarted.html">
		<li id="02-GettingStarted.html#Installation.html" ><a href="02-GettingStarted.php#Installation.php" >Installation</a></li>
		<li id="02-GettingStarted.html#FirstExample.html" ><a href="02-GettingStarted.php#FirstExample.php" >First Example</a></li>
		<li id="02-GettingStarted.html#RCPMail.html" ><a href="02-GettingStarted.php#RCPMail.php" >RCP Mail Example</a></li>
		</ul>
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="03-Components.php">Components</a></div>
		<ul style="display: none;" id="subToc_03-Components.html">
		<li id="03-Components.html#FormComponent.html" ><a href="03-Components.php#FormComponent.php" >Form Component</a></li>
		<li id="03-Components.html#TreeComponent.html" ><a href="03-Components.php#TreeComponent.php" >Tree Component</a></li>
		<li id="03-Components.html#TreeFormComponent.html" ><a href="03-Components.php#TreeFormComponent.php" >Tree Form Component</a></li>
		<li id="03-Components.html#TableComponent.html" ><a href="03-Components.php#TableComponent.php" >Table Component</a></li>
		</ul>
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="04-Customization.php">Customization</a></div>
		<ul style="display: none;" id="subToc_04-Customization.html">
		<li id="04-Customization.html#ResourceManagers.html" ><a href="04-Customization.php#ResourceManagers.php" >Managing Resources</a></li>
		<li id="04-Customization.html#Providers.html" ><a href="04-Customization.php#Providers.php" >Providers</a></li>
		<li id="04-Customization.html#SelectionAndMenu.html" ><a href="04-Customization.php#SelectionAndMenu.php" >Selection And Menu</a></li>
		<li id="04-Customization.html#Builders.html" ><a href="04-Customization.php#Builders.php" >Builders</a></li>
		<li id="04-Customization.html#Factories.html" ><a href="04-Customization.php#Factories.php" >Factories</a></li>
		<li id="04-Customization.html#Viewers.html" ><a href="04-Customization.php#Viewers.php" >Viewers</a></li>
		</ul>
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="05-DSL.php">EMF Components DSL</a></div>
		<ul style="display: none;" id="subToc_05-DSL.html">
		<li id="05-DSL.html#xbase.html" ><a href="05-DSL.php#xbase.php" >Xbase features</a></li>
		</ul>
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; display:none"  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="06-AdvancedComponents.php">Advanced Components</a></div>
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="07-Eclipse4.php">Eclipse 4</a></div>
		<ul style="display: none;" id="subToc_07-Eclipse4.html">
		<li id="07-Eclipse4.html#GetFirstExample.html" ><a href="07-Eclipse4.php#GetFirstExample.php" >First Example Setup</a></li>
		<li id="07-Eclipse4.html#PrepareForEclipse4Application.html" ><a href="07-Eclipse4.php#PrepareForEclipse4Application.php" >Preparing for a pure Eclipse 4 Application</a></li>
		<li id="07-Eclipse4.html#CreateEclipse4Application.html" ><a href="07-Eclipse4.php#CreateEclipse4Application.php" >Create an Eclipse 4 Application</a></li>
		<li id="07-Eclipse4.html#Eclipse4ApplicationAndEMFComponents.html" ><a href="07-Eclipse4.php#Eclipse4ApplicationAndEMFComponents.php" >Using an EMF Parsley TreeComposite into an Eclipse 4 Part</a></li>
		<li id="07-Eclipse4.html#Eclipse4Save.html" ><a href="07-Eclipse4.php#Eclipse4Save.php" >Adding the dirty state and Save command</a></li>
		</ul>
		</li>
		<li class="partentry" >
		Appendix
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="GettingSources.php">Getting Sources</a></div>
		<ul style="display: none;" id="subToc_GettingSources.html">
		<li id="GettingSources.html#InstallBuckminster.html" ><a href="GettingSources.php#InstallBuckminster.php" >Install Buckminster in the IDE</a></li>
		<li id="GettingSources.html#PrepareTP.html" ><a href="GettingSources.php#PrepareTP.php" >Prepare an empty target platform</a></li>
		<li id="GettingSources.html#MaterializeWP.html" ><a href="GettingSources.php#MaterializeWP.php" >Materialize the Workspace</a></li>
		</ul>
		</li>
		<li class="separator"><div class="separator">
		<img src="triangle.gif" style="height:12px; margin-right: 2px; "  /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
		<a href="samples.php">Xdoc Samples</a></div>
		<ul style="display: none;" id="subToc_samples.html">
		<li id="samples.html#Links.html" ><a href="samples.php#Links.php" >References</a></li>
		<li id="samples.html#CodeSections.html" ><a href="samples.php#CodeSections.php" >Code Sections</a></li>
		<li id="samples.html#Lists.html" ><a href="samples.php#Lists.php" >Lists and Tables</a></li>
		<li id="samples.html#Tables.html" ><a href="samples.php#Tables.php" >Tables</a></li>
		<li id="samples.html#TODO.html" ><a href="samples.php#TODO.php" >TODO</a></li>
		<li id="samples.html#Images.html" ><a href="samples.php#Images.php" >Images</a></li>
		</ul>
		</li>
		</ul>
	</div>
	<div id="midcolumn">
		<a name="GettingStarted" ></a>
		<h1>Getting Started</h1>
				<div class="toc">
				  <ul>
				    <li><a href="02-GettingStarted.php#Installation.php" >Installation</a></li>
				    <li><a href="02-GettingStarted.php#FirstExample.php" >First Example</a></li>
				    <li><a href="02-GettingStarted.php#RCPMail.php" >RCP Mail Example</a></li>
				  </ul>
				</div>
				
		<p>
		To get started, you should first download &quot;Eclipse Modeling Tools&quot; from <a href="http://www.eclipse.org/downloads/" >Eclipse
		Downloads</a>
		<div class="image" >
		<a class="gallery" rel="prettyPhoto[all]" title="" href="images/eclipseModelingTools.png">
			<img src="images/eclipseModelingTools.png" 
				width="600px"
			/>
		</a>
		<div class="caption">
		</div>
		</div>
		
		This will ensure you have EMF and related Tools installed and ready to go.
		</p>
		<a name="Installation" ></a>
		<span style="float:left; border-top: 1px dotted #d4d4dd; margin-left: 0; margin-top: 5px;
			padding: 5px 0;
			padding-top: 5px;"></span><a style="float: right" href="#">Top</a>
			<br style="clear:both"></br>
			<h1>Installation</h1>
			<p>
			Now select &quot;Help&quot; -&gt; &quot;Install New Software...&quot; and in the &quot;Work with:&quot; field insert the EMF Components update
			site <a href="http://www.rcp-vision.com/emf-components/updates/" >http://www.rcp-vision.com/emf-components/updates/</a>
			and install all features.
			Although sources are not strictly required, it might help when using EMF Components
			to have a look at its sources.
			</p>
			<p>
			<div class="image" >
			<a class="gallery" rel="prettyPhoto[all]" title="" href="images/emf-components-update-site.png">
				<img src="images/emf-components-update-site.png" 
					width="600px"
				/>
			</a>
			<div class="caption">
			</div>
			</div>
			</p>
		<a name="FirstExample" ></a>
		<span style="float:left; border-top: 1px dotted #d4d4dd; margin-left: 0; margin-top: 5px;
			padding: 5px 0;
			padding-top: 5px;"></span><a style="float: right" href="#">Top</a>
			<br style="clear:both"></br>
			<h1>First Example</h1>
			<p>
			The purpose of this first example is to make use of the classical EMF Library Model example and
			create a view for editing such models using an EMF Components enabled plug-in.
			</p>
			<p>
			So let's start by creating the model plug-in with
			</p>
			<p>
			<ol>
			  <li>File -&gt; New... -&gt; Example...</li>
			  <li>from Category &quot;Eclipse Modeling Framework&quot;, select &quot;Extended Library Model Example&quot;</li>
			  <li>press Next and Finish</li>
			</ol>
			</p>
			<p>
			You will end up with three plug-ins: 
			</p>
			<p>
			<ul>
			  <li>org.eclipse.emf.examples.library (the model plug-in)</li>
			  <li>org.eclipse.emf.examples.library.edit (the edit plug-in)</li>
			  <li>org.eclipse.emf.examples.library.editor (the editor plug-in)</li>
			</ul>
			</p>
			<p>
			We only need the first plugin, so you might want to remove the .edit and .editor plugins.
			</p>
			<p>
			Now you can create your first example with the appropriate wizard.
			</p>
			<p>
			<ol>
			  <li>select &quot;File&quot; -&gt; &quot;New&quot; -&gt; &quot;Project...&quot;</li>
			  <li>from the &quot;Emf Parsley&quot; category select &quot;Emf Parsley Dsl based Project&quot;</li>
			  <li>click &quot;Next&quot;</li>
			  <li>give a name to the project (e.g. &quot;org.eclipse.emf.parsley.examples.firstexample&quot;)</li>
			  <li>click &quot;Finish&quot;</li>
			</ol>
			
			 
			The generated project has some classes and a <em>module.parlsey</em> file, which opens automatically.
			Just type the following content into the {} block (note that context assist is available)
			</p>
			<p>
			<div class="literallayout">
				<div class="incode">
					<p class="code">
						<span class="keyword">parts</span>&nbsp;{
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">viewpart</span>&nbsp;org.eclipse.emf.parsley.examples.firstexample.view.library.treeform&nbsp;{
						<br/>
						<span class="keyword">viewname</span>&nbsp;<span class="string">"My&nbsp;Library&nbsp;Tree&nbsp;Form"</span>
						<br/>
						<span class="keyword">viewclass</span>&nbsp;
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;}
					</p>
				</div>
			</div>
			</p>
			<p>
			Here above we have just declared a view part with
			 
			<ol>
			  <li>id <em>&quot;org.eclipse.emf.parsley.examples.firstexample.view.library.treeform&quot;</em></li>
			  <li>name <em>&quot;Library Tree Form&quot;</em></li>
			  <li>class: not yet set, we are going to create
			  		 <em>&quot;org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView&quot;</em></li>
			</ol>
			</p>
			<p>
			So there is still an error, in fact we need to create the declared class. 
			<em>Suggestion:</em> Just copy the above qualified class name (<em>&quot;org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView&quot;</em>), 
			select the project, right-click and select File -&gt; New -&gt; Class. Now paste the clipboard content into <em>&quot;Name:&quot;</em> field: the
			package and class name will be automatically splitted into right fields. Then click <em>&quot;Finish&quot;</em>.
			</p>
			<p>
			Now modify the view class code with this content:
			</p>
			<p>
			<div class="literallayout">
				<div class="incode">
					<p class="code">
						<span class="keyword">import</span>&nbsp;org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;
						<br/>
						<span class="keyword">import</span>&nbsp;org.eclipse.emf.common.util.URI;
						<br/>
						<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;LibraryTreeFormView&nbsp;<span class="keyword">extends</span>&nbsp;AbstractSaveableTreeFormView&nbsp;{
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span>&nbsp;URI&nbsp;createResourceURI()&nbsp;{
						<br/>
						<span class="keyword">return</span>&nbsp;URI.createFileURI(&nbsp;System.getProperty(<span class="string">"user.home"</span>)&nbsp;+&nbsp;<span class="string">"/MyLibrary.library"</span>&nbsp;);
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;}
						<br/>
						}
					</p>
				</div>
			</div>
			</p>
			<p>
			Now get back to <em>module.parlsey</em> file, go just after <em>&quot;viewclass&quot;</em> keyword, type <em>&quot;LibraryTreeFormView&quot;</em>
			and <em>Ctrl-Space</em>: the content assist will set automatically the correct qualified name
			</p>
			<p>
			<div class="literallayout">
				<div class="incode">
					<p class="code">
						<span class="keyword">viewclass</span>&nbsp;org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView
					</p>
				</div>
			</div>
			</p>
			<p>
			when you save the above file you will notice that a new file (<em>&quot;plugin.xml_emfparsley_gen&quot;</em>) 
			is generated into the root folder of your project. Just copy this file into <em>&quot;plugin.xml&quot;</em>.
			</p>
			<p>
			Let's focus briefly on the above <em>createResourceURI()</em> method: our goal is allowing to manage 
			a library model instance which persists on a EMF Resource.
			In this example we choose to use the EMF default persistence (XMI), but you can provide any URI 
			(e.g. using Teneo, CDO or any other EMF Resource Persistence implementation)
			In particular here we choose to persist the Resource in a XMI file named <em>&quot;MyLibrary.library&quot;</em> into the user home
			folder (you might want to change it with any other path). 
			</p>
			<p>
			We need a <em>Dependency</em> from the model plug-in: so open <em>MANIFEST.MF</em> file, go to <em>Dependencies</em>
			tab, press <em>&quot;Add...&quot;</em> button in <em>&quot;Required Plug-ins&quot;</em> section and insert <em>&quot;org.eclipse.emf.examples.library&quot;</em>
			among dependencies.
			</p>
			<p>
			Before executing this code we need to do some little more work in order to initialize the Resource.
			</p>
			<p>
			An easy way to overcome this issue can be the following:
			</p>
			<p>
			<ol>
			  <li>open the class *GuiceModule (FirstexampleGuiceModule in this example) that the wizard created for you.
			  	Note that this is a key	class for all customizations; it allows to override several methods in order to provide custom behaviors
			  	and implementations.</li>
			  <li>override method <em>bindEmptyResourceInitializer()</em> providing a class for Resource initialization
			  	
			  		<div class="literallayout">
			  	<div class="incode">
			  		<p class="code">
			  			<span class="keyword">public</span>&nbsp;Class&lt;?&nbsp;<span class="keyword">extends</span>&nbsp;EmptyResourceInitializer&gt;&nbsp;bindEmptyResourceInitializer()&nbsp;{
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;LibraryEmptyResourceInitializer.<span class="keyword">class</span>;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
			  		</p>
			  	</div>
			  </div>
			  
			  </li>
			  <li>create a new class <em>LibraryEmptyResourceInitializer</em> extending from <em>EmptyResourceInitializer</em> for Resource initialization
			  		<div class="literallayout">
			  	<div class="incode">
			  		<p class="code">
			  			<span class="keyword">import</span>&nbsp;org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">import</span>&nbsp;org.eclipse.emf.ecore.resource.Resource;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">import</span>&nbsp;org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">import</span>&nbsp;org.eclipse.emf.examples.extlibrary.Library;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;LibraryEmptyResourceInitializer&nbsp;&nbsp;<span class="keyword">extends</span>&nbsp;EmptyResourceInitializer&nbsp;{&nbsp;
			  			<br/>
			  			&nbsp;&nbsp;
			  			<br/>
			  			&nbsp;<span class="keyword">public</span>&nbsp;<span class="keyword">void</span>&nbsp;initialize(Resource&nbsp;resource)&nbsp;{&nbsp;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>.initialize(resource);&nbsp;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;library&nbsp;=&nbsp;EXTLibraryFactory.eINSTANCE.createLibrary();&nbsp;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource.getContents().add(library);&nbsp;
			  			<br/>
			  			&nbsp;}&nbsp;
			  			<br/>
			  			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
			  		</p>
			  	</div>
			  </div>
			  
			  		The method <em>initialize()</em> will be executed only when the Resource is empty
			  		(i.e., it has no contents).
			  </li>
			</ol>
			</p>
			<p>
			now get back to the <em>MANIFEST.MF</em> and run the example
			</p>
			<p>
			<div class="image" >
			<a class="gallery" rel="prettyPhoto[all]" title="" href="images/first-example-launch.png">
				<img src="images/first-example-launch.png" 
					width="600px"
				/>
			</a>
			<div class="caption">
			</div>
			</div>
			</p>
			<p>
			As an Eclipse RCP developer you know, of course, that this will start another Eclipse instance (unless
			you add an Application plug-in to the launch or define an Application in the current plug-in). 
			</p>
			<p>
			In this second Eclipse instance you can show the View in this way:
			<ol>
			  <li><em>Window -&gt; Show View -&gt; Other...</em></li>
			  <li>from Category &quot;Emf Parsley&quot;, select &quot;My Library Tree Form&quot;</li>
			  <li>press <em>OK</em></li>
			</ol>
			</p>
			<p>
			<div class="image" >
			<a class="gallery" rel="prettyPhoto[all]" title="" href="images/first-example-run.png">
				<img src="images/first-example-run.png" 
					width="600px"
				/>
			</a>
			<div class="caption">
			</div>
			</div>
			</p>
			<p>
			With this simple view you can start editing the model instance. For example you can set the <em>&quot;name&quot;</em>
			field; as soon as you start typing characters into this field you will notice that:
			<ol>
			  <li>the View turns to a <em>&quot;dirty&quot;</em> state (an asterisk symbol appears on the view tab)</li>
			  <li>the <em>&quot;Save&quot;</em> toolbar button is enabled</li>
			  <li>the typed characters are reflected into the label correspondent to the Library icon</li>
			</ol>
			</p>
			<p>
			if you now perform a <em>&quot;Save&quot;</em> action the persistence mechanism will trigger and you will see that file 
			<span class="inlinecode">&lt;user.home&gt;/MyLibrary.library</span>
			is being created on the file system. From now on, this file will keep the state of the model object whenever
			you change and save it. 
			</p>
			<p>
			To create a Writer into the Library just right-click on the Library object and select <em>New Child -&gt; Writer</em>
			</p>
			<p>
			<div class="image" >
			<a class="gallery" rel="prettyPhoto[all]" title="" href="images/createWriter.png">
				<img src="images/createWriter.png" 
					width="600px"
				/>
			</a>
			<div class="caption">
			</div>
			</div>
			</p>
			<p>
			Please note that you might see a slightly different content in the above context-menu in case you deleted
			the .edit plugin when creating the model (e.g. <em>&quot;Writers Writer&quot;</em> instead of <em>&quot;Writer&quot;</em>, <em>&quot;Stock Book&quot;</em> instead of <em>&quot;Book&quot;</em> and
			similar (this is because with EMF it is possible to customize labels also via .edit plugin).
			</p>
			<p>
			Now set for instance the writer <em>&quot;name&quot;</em> field and save.
			Now just play around creating Books, associating them to Writers and so on.
			As you can see you can entirely manage the EMF model instance: creating, modifying and deleting elements.
			</p>
			<p>
			Whenever the current selection on the upper side of the view changes, then the lower side shows the detail
			of this selection.
			</p>
			<p>
			However, up to this point, you have no control over the field to be shown and its order; for example
			you may want just the <em>&quot;name&quot;</em> attribute for the Library and <em>&quot;name&quot;, &quot;address&quot; and &quot;books&quot;</em> attributes
			for Writers and maybe <em>&quot;title&quot;, &quot;authors&quot; and &quot;category&quot;</em> for Books.
			</p>
			<p>
			Well, it's indeed very easy to obtain this: just edit the <em>module.parsley</em> file, 
			adding the following import (without ending line with &quot;;&quot;)
			</p>
			<p>
			<div class="literallayout">
				<div class="incode">
					<p class="code">
						<span class="keyword">import</span>&nbsp;org.eclipse.emf.examples.extlibrary.*
					</p>
				</div>
			</div>
			</p>
			<p>
			and then defining the features to show
			</p>
			<p>
			<div class="literallayout">
				<div class="incode">
					<p class="code">
						<span class="keyword">module</span>&nbsp;...&nbsp;{
						<br/>
						
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">parts</span>&nbsp;{&nbsp;
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;}
						<br/>
						<span class="keyword">featuresProvider</span>&nbsp;{
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">features</span>&nbsp;{
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;-&gt;&nbsp;name
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;-&gt;&nbsp;name,&nbsp;address,&nbsp;books
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Book&nbsp;-&gt;&nbsp;author,&nbsp;title,&nbsp;category
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;}
						<br/>
						}
						<br/>
						}
					</p>
				</div>
			</div>
			</p>
			<p>
			Remeber that code completion is available, just exploit it since it helps a lot.
			</p>
			<p>
			If you restart now the application you will see that, when selecting an object, only the declared attributes
			will be shown. Furthermore, they are shown in the specified order.
			</p>
			<p>
			Did you run the application in Debug mode? Well, then you can change fields and order, save and see the
			changes without even restarting the application.
			</p>
			<p>
			Do you want to change text used for attribute labels in the detail? Just add the following:
			</p>
			<p>
			<div class="literallayout">
				<div class="incode">
					<p class="code">
						<span class="keyword">propertyDescriptionProvider</span>&nbsp;{
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">text</span>&nbsp;{
						<br/>
						Book&nbsp;:&nbsp;author&nbsp;-&gt;&nbsp;<span class="string">&apos;Wrote&nbsp;by:&apos;</span>
						<br/>
						Writer&nbsp;:&nbsp;name&nbsp;-&gt;&nbsp;<span class="string">&apos;Name:&apos;</span>
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;}
					</p>
				</div>
			</div>
			
			 
			Or do you want to change the label shown on the tree nodes on the upper side and as detail title? 
			Maybe want to format the book label like this?
			 
			<div class="literallayout">
				<div class="incode">
					<p class="code">
						<span class="keyword">labelProvider</span>&nbsp;{
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">text</span>&nbsp;{
						<br/>
						Book&nbsp;b&nbsp;-&gt;&nbsp;<span class="string">&apos;"&apos;</span>&nbsp;+&nbsp;b.title&nbsp;+&nbsp;<span class="string">&apos;"&apos;</span>&nbsp;+<span class="string">&apos;&nbsp;(by&nbsp;&apos;</span>+&nbsp;b.author.name&nbsp;+&nbsp;<span class="string">&apos;)&apos;</span>
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
						<br/>
						&nbsp;&nbsp;&nbsp;&nbsp;}
					</p>
				</div>
			</div>
			
			 
			<div class="image" >
			<a class="gallery" rel="prettyPhoto[all]" title="" href="images/labelCustomization.png">
				<img src="images/labelCustomization.png" 
					width="600px"
				/>
			</a>
			<div class="caption">
			</div>
			</div>
			
			 
			  
			 
			 
			</p>
		<a name="RCPMail" ></a>
		<span style="float:left; border-top: 1px dotted #d4d4dd; margin-left: 0; margin-top: 5px;
			padding: 5px 0;
			padding-top: 5px;"></span><a style="float: right" href="#">Top</a>
			<br style="clear:both"></br>
			<h1>RCP Mail Example</h1>
		<div id="disqus_thread"></div>
		<script type="text/javascript" src="documentationRoot.js"></script>
		<script type="text/javascript">
		    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
		    var disqus_shortname = 'xtext'; // required: replace example with your forum shortname
		
		    // The following are highly recommended additional parameters. Remove the slashes in front to use.
		    var disqus_identifier = 'GettingStarted';
		    var disqus_url = documentationRoot+'02-GettingStarted.php';
		
		    /* * * DON'T EDIT BELOW THIS LINE * * */
		    (function() {
		        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
		        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
		        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
		    })();
		</script>
 		<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
	</div>
	<br style="clear:both;height:1em;">
