blob: 41c9c6d1b8aa0f629f4dd33e813f2ca5707d37bd [file] [log] [blame]
<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="GettingSources" ></a>
<h1>Getting Sources</h1>
<div class="toc">
<ul>
<li><a href="GettingSources.php#InstallBuckminster.php" >Install Buckminster in the IDE</a></li>
<li><a href="GettingSources.php#PrepareTP.php" >Prepare an empty target platform</a></li>
<li><a href="GettingSources.php#MaterializeWP.php" >Materialize the Workspace</a></li>
</ul>
</div>
<p>
If you want to get the sources of EMF Components,
for instance, to contribute new features and patches, you can get them
via Git.
</p>
<p>
We use <a href="http://www.eclipse.org/buckminster/" >Buckminster</a> as the
building and materialization infrastructure; this will let you
automatically materialize the sources in the workspace and setup
the target platform, so that you will have everything that is necessary
to have a working workspace with EMF Components sources.
</p>
<p>
For <a href="http://eclipse.org/rap/" >RAP</a> related project sources
you will have to use a different workspace (and the materialized target
platform will be different). The procedure is the same, you will just
need to use a different URL for the materialization (as explained in the
following).
</p>
<p>
Some projects will be common to both RCP environment
and RAP environment.
</p>
<a name="InstallBuckminster" ></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>Install Buckminster in the IDE</h1>
<p>
First of all, you need to install Buckminster in your Eclipse;
you can do that using the update site
</p>
<p>
<em>http://download.eclipse.org/tools/buckminster/updates-4.2</em>
</p>
<p>
You need to install the core, git and pde features.
</p>
<p>
<div class="image" >
<a class="gallery" rel="prettyPhoto[all]" title="Install Buckminster features" href="images/install-buckminster.png">
<img src="images/install-buckminster.png"
width="600px"
style="width:90%"
/>
</a>
<div class="caption">
Install Buckminster features
</div>
</div>
</p>
<a name="PrepareTP" ></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>Prepare an empty target platform</h1>
<p>
It is better to start with an empty target platform in your IDE
(then Buckminster will materialize the required features and
bundles starting from that empty target);
you then need to create an empty target platform manually that contains
one single and empty directory and set this target platform active.
A subsequent resolution/materialization will use that platform.
Here are the detailed steps:
</p>
<p>
<ol>
<li>Create a new general project named TP
(or some name of your preference)</li>
<li>Open &quot;Window&quot; =&gt; &quot;Preferences&quot; and expand &quot;Plug-in Development&quot;</li>
<li>Select &quot;Target Platform&quot;</li>
<li>Click &quot;Add...&quot;</li>
<li>Click &quot;Next&gt;&quot; (i.e. start with nothing)</li>
<li>Enter TP in the Name: field</li>
<li>Click &quot;Add...&quot;</li>
<li>Select &quot;Directory&quot; and click &quot;Next&quot;</li>
<li>Click on &quot;Variables...&quot;</li>
<li>Scroll down and select &quot;workspace_loc&quot; and then type TP in the Argument: field.</li>
<li>Click &quot;OK&quot; and then &quot;Finish&quot; and then &quot;Finish&quot; again.</li>
<li>Set your new target definition active by checking it in the list of Target definitions: and click &quot;OK&quot;</li>
</ol>
</p>
<a name="MaterializeWP" ></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>Materialize the Workspace</h1>
<div class="toc">
<ul>
<li><a href="GettingSources.php#CustomizeProperties.php" >(Optional) Customize some Properties</a></li>
<li><a href="GettingSources.php#StartMaterialization.php" >Start Materialization</a></li>
</ul>
</div>
<p>
From the File menu choose <em>Open a Component Query...</em> and
use this URL
</p>
<p>
<a href="http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.buckminster/build.cquery" >http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.buckminster/build.cquery</a>
</p>
<p>
If you want to materialize a workspace with EMF Components RAP
related projects use this URL instead
</p>
<p>
<a href="http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery" >http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery</a>
</p>
<p>
<div class="image" >
<a class="gallery" rel="prettyPhoto[all]" title="The component query opened" href="images/open-cquery.png">
<img src="images/open-cquery.png"
width="600px"
style="width:90%"
/>
</a>
<div class="caption">
The component query opened
</div>
</div>
</p>
<a name="CustomizeProperties" ></a>
<h2>(Optional) Customize some Properties</h2>
<p>
Before starting the materialization, you might want to customize
some properties; you can do that in the <em>Properties</em> tab of
the opened component query:
</p>
<p>
<div class="image" >
<a class="gallery" rel="prettyPhoto[all]" title="The properties tab" href="images/open-cquery1.png">
<img src="images/open-cquery1.png"
width="600px"
style="width:90%"
/>
</a>
<div class="caption">
The properties tab
</div>
</div>
</p>
<p>
You can add a property by pressing
the <em>New</em> button.
</p>
<p>
For instance, you can customize the path in your system where
the git repository will be cloned, which defaults to
<em>${user.home}/git/emf-components</em>); for instance, you can change it
to something else
</p>
<p>
<div class="image" >
<a class="gallery" rel="prettyPhoto[all]" title="Property customization" href="images/open-cquery-new-property1.png">
<img src="images/open-cquery-new-property1.png"
width="600px"
style="width:50%"
/>
</a>
<div class="caption">
Property customization
</div>
</div>
</p>
<a name="StartMaterialization" ></a>
<h2>Start Materialization</h2>
<p>
You can now press the button in the opened query <em>Resolve and Materialize</em>.
This will start the materialization process which will consist of
cloning the git repository, materialize the target platform and importing
all the projects into the workspace.
</p>
<p>
<div class="image" >
<a class="gallery" rel="prettyPhoto[all]" title="Materialization..." href="images/resolving-cquery.png">
<img src="images/resolving-cquery.png"
width="600px"
style="width:70%"
/>
</a>
<div class="caption">
Materialization...
</div>
</div>
</p>
<p>
Materializing the target platform may take sometime (depending on your
network connection), so you might want to go and get a coffee
in the meantime ;)
</p>
<p>
When the whole process terminates, you will have a working
workspace with EMF Components projects and the needed target platform
(thus, you should have no error!).
</p>
<p>
<div class="image" >
<a class="gallery" rel="prettyPhoto[all]" title="The final materialized workspace" href="images/materialized.png">
<img src="images/materialized.png"
width="600px"
style="width:90%"
/>
</a>
<div class="caption">
The final materialized workspace
</div>
</div>
</p>
<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 = 'GettingSources';
var disqus_url = documentationRoot+'GettingSources.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;">