diff options
Diffstat (limited to 'core/org.eclipse.emf.teneo.eclipse')
24 files changed, 1983 insertions, 0 deletions
diff --git a/core/org.eclipse.emf.teneo.eclipse/.classpath b/core/org.eclipse.emf.teneo.eclipse/.classpath new file mode 100755 index 000000000..64c5e31b7 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/core/org.eclipse.emf.teneo.eclipse/.cvsignore b/core/org.eclipse.emf.teneo.eclipse/.cvsignore new file mode 100755 index 000000000..ba077a403 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/.cvsignore @@ -0,0 +1 @@ +bin diff --git a/core/org.eclipse.emf.teneo.eclipse/.project b/core/org.eclipse.emf.teneo.eclipse/.project new file mode 100755 index 000000000..467f578ba --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.teneo.eclipse</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/core/org.eclipse.emf.teneo.eclipse/.settings/org.eclipse.jdt.core.prefs b/core/org.eclipse.emf.teneo.eclipse/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..ef50d3b68 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Mon Feb 08 06:54:19 CET 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/core/org.eclipse.emf.teneo.eclipse/META-INF/MANIFEST.MF b/core/org.eclipse.emf.teneo.eclipse/META-INF/MANIFEST.MF new file mode 100755 index 000000000..73a50c3a4 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/META-INF/MANIFEST.MF @@ -0,0 +1,25 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %Plugin.name +Bundle-SymbolicName: org.eclipse.emf.teneo.eclipse; singleton:=true +Bundle-Version: 1.1.2.qualifier +Bundle-Activator: org.eclipse.emf.teneo.eclipse.StorePlugin +Bundle-Localization: plugin +Eclipse-BuddyPolicy: dependent +Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)", + org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)", + org.eclipse.jdt;bundle-version="[3.5.0,4.0.0)", + org.eclipse.jdt.core;bundle-version="[3.5.0,4.0.0)", + org.eclipse.emf.teneo;bundle-version="[1.0.0,2.0.0)", + org.eclipse.jdt.launching;bundle-version="[3.5.0,4.0.0)", + org.eclipse.debug.core;bundle-version="[3.5.0,4.0.0)" +Bundle-ActivationPolicy: lazy +Export-Package: org.eclipse.emf.teneo.eclipse;version="1.1.2", + org.eclipse.emf.teneo.eclipse.genxml;version="1.1.2", + org.eclipse.emf.teneo.eclipse.resourcehandler;version="1.1.2" +Bundle-Vendor: %Plugin.providerName +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: org.apache.commons.logging;version="[1.0.0,2.0.0)" + diff --git a/core/org.eclipse.emf.teneo.eclipse/about.html b/core/org.eclipse.emf.teneo.eclipse/about.html new file mode 100755 index 000000000..5a279453c --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/about.html @@ -0,0 +1,24 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> + + +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head><body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 5, 2007, 2008</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body></html>
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo.eclipse/about.ini b/core/org.eclipse.emf.teneo.eclipse/about.ini new file mode 100755 index 000000000..1d17e5539 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/about.ini @@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage=modeling32.png + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +#welcomePage=$nl$/welcome.xml diff --git a/core/org.eclipse.emf.teneo.eclipse/about.properties b/core/org.eclipse.emf.teneo.eclipse/about.properties new file mode 100755 index 000000000..eb8f89c54 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/about.properties @@ -0,0 +1,46 @@ +#/** +# * <copyright> +# * +# * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others +# * All rights reserved. This program and the accompanying materials +# * are made available under the terms of the Eclipse Public License v1.0 +# * which accompanies this distribution, and is available at +# * http://www.eclipse.org/legal/epl-v10.html +# * +# * Contributors: +# * Martin Taal - Initial API and implementation +# * +# * </copyright> +# * +# * $Id: about.properties,v 1.4 2009/02/24 12:05:01 mtaal Exp $ +# */ + +# NLS_MESSAGEFORMAT_VAR + +# ============================================================================== +# Do not change the properties between this line and the last line containing: +# %%% END OF TRANSLATED PROPERTIES %%% +# Instead, either redefine an existing property, or create a new property, +# append it to the end of the file, and change the code to use the new name. +# ============================================================================== + +# about.properties +# contains externalized strings for about.ini +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# fill-ins are supplied by about.mappings +# This file should be translated. + +featureName=Eclipse Modeling Framework Technology Object Relational Persistence UI + +featureText=Eclipse Modeling Framework Technology Object Relational Persistence \n\ +Version: {featureVersion}\n\ +Build id: {0}\n\ +\n\ +(c) Copyright Springsite BV (The Netherlands) and others. 2006 - 2009. All rights reserved.\n\ +\n\ +Visit http://www.eclipse.org/emft + +# ============================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# The above properties have been shipped for translation. +# ============================================================================== diff --git a/core/org.eclipse.emf.teneo.eclipse/build.properties b/core/org.eclipse.emf.teneo.eclipse/build.properties new file mode 100755 index 000000000..b926178e1 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/build.properties @@ -0,0 +1,22 @@ +source.. = src/ +output.. = bin/ +bin.includes = plugin.properties,\ + META-INF/,\ + epl-v10.html,\ + modeling32.png,\ + about.ini,\ + about.properties,\ + .,\ + copyright.txt,\ + about.html,\ + src/org/eclipse/emf/teneo/eclipse/messages.properties +src.includes = about.html,\ + epl-v10.html,\ + copyright.txt,\ + about.properties,\ + about.ini,\ + license.html,\ + modeling32.png +jars.compile.order = . +javacSource=1.5 +javacTarget=1.5 diff --git a/core/org.eclipse.emf.teneo.eclipse/copyright.txt b/core/org.eclipse.emf.teneo.eclipse/copyright.txt new file mode 100755 index 000000000..00a634676 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/copyright.txt @@ -0,0 +1,8 @@ +Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/epl-v10.html + +Contributors: + Martin Taal
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo.eclipse/epl-v10.html b/core/org.eclipse.emf.teneo.eclipse/epl-v10.html new file mode 100755 index 000000000..d7b88e941 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/epl-v10.html @@ -0,0 +1,319 @@ +<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<meta name="ProgId" content="Word.Document"> +<meta name="Generator" content="Microsoft Word 9"> +<meta name="Originator" content="Microsoft Word 9"> +<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Revision>2</o:Revision> + <o:TotalTime>3</o:TotalTime> + <o:Created>2004-03-05T23:03:00Z</o:Created> + <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved> + <o:Pages>4</o:Pages> + <o:Words>1626</o:Words> + <o:Characters>9270</o:Characters> + <o:Lines>77</o:Lines> + <o:Paragraphs>18</o:Paragraphs> + <o:CharactersWithSpaces>11384</o:CharactersWithSpaces> + <o:Version>9.4402</o:Version> + </o:DocumentProperties> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackRevisions/> + </w:WordDocument> +</xml><![endif]--> + + +<style> +<!-- + /* Font Definitions */ +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:553679495 -2147483648 8 0 66047 0;} + /* Style Definitions */ +p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p + {margin-right:0in; + mso-margin-top-alt:auto; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p.BalloonText, li.BalloonText, div.BalloonText + {mso-style-name:"Balloon Text"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:Tahoma; + mso-fareast-font-family:"Times New Roman";} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style></head> + +<body style="" lang="EN-US"> + +<div class="Section1"> + +<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b> +</p> + +<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.</span> </p> + +<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p> + +<p><span style="font-size: 10pt;">"Contribution" means:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and<br clear="left"> +b) in the case of each subsequent Contributor:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +changes to the Program, and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +additions to the Program;</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program. </span></p> + +<p><span style="font-size: 10pt;">"Contributor" means any person or +entity that distributes the Program.</span> </p> + +<p><span style="font-size: 10pt;">"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program. </span></p> + +<p><span style="font-size: 10pt;">"Program" means the Contributions +distributed in accordance with this Agreement.</span> </p> + +<p><span style="font-size: 10pt;">"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.</span> </p> + +<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder. </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement. </span></p> + +<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p> + +<p><span style="font-size: 10pt;">A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that:</span> +</p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it complies with the terms and conditions of this Agreement; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +its license agreement:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.<span style="color: blue;"> </span></span></p> + +<p><span style="font-size: 10pt;">When the Program is made available in source +code form:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it must be made available under this Agreement; and </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a +copy of this Agreement must be included with each copy of the Program. </span></p> + +<p><span style="font-size: 10pt;">Contributors may not remove or alter any +copyright notices contained within the Program. </span></p> + +<p><span style="font-size: 10pt;">Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution. </span></p> + +<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p> + +<p><span style="font-size: 10pt;">Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.</span> </p> + +<p><span style="font-size: 10pt;">For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.</span> </p> + +<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. </span></p> + +<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.</span> </p> + +<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p> + +<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.</span> </p> + +<p><span style="font-size: 10pt;">If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed. </span></p> + +<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive. </span></p> + +<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.</span> </p> + +<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.</span> </p> + +<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> + +</div> + +</body></html>
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo.eclipse/license.html b/core/org.eclipse.emf.teneo.eclipse/license.html new file mode 100755 index 000000000..d7b88e941 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/license.html @@ -0,0 +1,319 @@ +<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<meta name="ProgId" content="Word.Document"> +<meta name="Generator" content="Microsoft Word 9"> +<meta name="Originator" content="Microsoft Word 9"> +<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Revision>2</o:Revision> + <o:TotalTime>3</o:TotalTime> + <o:Created>2004-03-05T23:03:00Z</o:Created> + <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved> + <o:Pages>4</o:Pages> + <o:Words>1626</o:Words> + <o:Characters>9270</o:Characters> + <o:Lines>77</o:Lines> + <o:Paragraphs>18</o:Paragraphs> + <o:CharactersWithSpaces>11384</o:CharactersWithSpaces> + <o:Version>9.4402</o:Version> + </o:DocumentProperties> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackRevisions/> + </w:WordDocument> +</xml><![endif]--> + + +<style> +<!-- + /* Font Definitions */ +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:553679495 -2147483648 8 0 66047 0;} + /* Style Definitions */ +p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p + {margin-right:0in; + mso-margin-top-alt:auto; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p.BalloonText, li.BalloonText, div.BalloonText + {mso-style-name:"Balloon Text"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:Tahoma; + mso-fareast-font-family:"Times New Roman";} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style></head> + +<body style="" lang="EN-US"> + +<div class="Section1"> + +<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b> +</p> + +<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.</span> </p> + +<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p> + +<p><span style="font-size: 10pt;">"Contribution" means:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and<br clear="left"> +b) in the case of each subsequent Contributor:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +changes to the Program, and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +additions to the Program;</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program. </span></p> + +<p><span style="font-size: 10pt;">"Contributor" means any person or +entity that distributes the Program.</span> </p> + +<p><span style="font-size: 10pt;">"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program. </span></p> + +<p><span style="font-size: 10pt;">"Program" means the Contributions +distributed in accordance with this Agreement.</span> </p> + +<p><span style="font-size: 10pt;">"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.</span> </p> + +<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder. </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement. </span></p> + +<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p> + +<p><span style="font-size: 10pt;">A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that:</span> +</p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it complies with the terms and conditions of this Agreement; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +its license agreement:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.<span style="color: blue;"> </span></span></p> + +<p><span style="font-size: 10pt;">When the Program is made available in source +code form:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it must be made available under this Agreement; and </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a +copy of this Agreement must be included with each copy of the Program. </span></p> + +<p><span style="font-size: 10pt;">Contributors may not remove or alter any +copyright notices contained within the Program. </span></p> + +<p><span style="font-size: 10pt;">Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution. </span></p> + +<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p> + +<p><span style="font-size: 10pt;">Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.</span> </p> + +<p><span style="font-size: 10pt;">For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.</span> </p> + +<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. </span></p> + +<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.</span> </p> + +<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p> + +<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.</span> </p> + +<p><span style="font-size: 10pt;">If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed. </span></p> + +<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive. </span></p> + +<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.</span> </p> + +<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.</span> </p> + +<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> + +</div> + +</body></html>
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo.eclipse/modeling32.png b/core/org.eclipse.emf.teneo.eclipse/modeling32.png Binary files differnew file mode 100755 index 000000000..6b08de2ad --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/modeling32.png diff --git a/core/org.eclipse.emf.teneo.eclipse/plugin.properties b/core/org.eclipse.emf.teneo.eclipse/plugin.properties new file mode 100755 index 000000000..61dc30922 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/plugin.properties @@ -0,0 +1,33 @@ +#/** +# * <copyright> +# * +# * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others +# * All rights reserved. This program and the accompanying materials +# * are made available under the terms of the Eclipse Public License v1.0 +# * which accompanies this distribution, and is available at +# * http://www.eclipse.org/legal/epl-v10.html +# * +# * Contributors: +# * Martin Taal - Initial API and implementation +# * +# * </copyright> +# * +# * $Id: plugin.properties,v 1.7 2009/05/13 10:23:04 mtaal Exp $ +# */ + +# NLS_MESSAGEFORMAT_VAR + +# ============================================================================== +# Do not change the properties between this line and the last line containing: +# %%% END OF TRANSLATED PROPERTIES %%% +# Instead, either redefine an existing property, or create a new property, +# append it to the end of the file, and change the code to use the new name. +# ============================================================================== + +Plugin.name = EMF Teneo Eclipse UI +Plugin.providerName = Eclipse Modeling Project + +# ============================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# The above properties have been shipped for translation. +# ============================================================================== diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/Messages.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/Messages.java new file mode 100644 index 000000000..ecf2ad4c2 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/Messages.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Victor Roldan Betancort - initial API and implementation + * Eike Stepper - maintenance + */ +package org.eclipse.emf.teneo.eclipse; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * @author Victor Roldan Betancort + */ +public class Messages { + private static final String BUNDLE_NAME = "org.eclipse.emf.teneo.eclipse.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() { + } + + public static String getString(String key) { + try { + return RESOURCE_BUNDLE.getString(key); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } + } +} diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StoreEclipseException.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StoreEclipseException.java new file mode 100755 index 000000000..0230409d0 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StoreEclipseException.java @@ -0,0 +1,42 @@ +/** + * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights + * reserved. This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal </copyright> $Id: + * StoreEclipseException.java,v 1.2 2007/02/01 12:35:18 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse; + +import org.eclipse.emf.teneo.TeneoException; + +/** + * Is used to throw runtime plugin exception. This class offers automatic logging to commons + * logging. Note that this class extends RuntimeException, so no forced throws and catch statements. + * Although there are very differing views on this topic but it is our experience that to many + * checked exceptions only distract the programmer and have no added value. + * + * @author <a href="mailto:mtaal@elver.org">Martin Taal</a> + * @version $Revision: 1.4 $ + */ + +public class StoreEclipseException extends TeneoException { + /** + * Serializable id + */ + private static final long serialVersionUID = 7433341056815136427L; + + /** + * The constructor, logs the exception also + */ + public StoreEclipseException(String msg, Throwable cause) { + super(msg, cause); + } + + /** + * The constructor, logs the exception also + */ + public StoreEclipseException(String msg) { + super(msg); + } +} diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StoreEclipseUtil.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StoreEclipseUtil.java new file mode 100755 index 000000000..7bdcec9f4 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StoreEclipseUtil.java @@ -0,0 +1,80 @@ +/** + * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights + * reserved. This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal </copyright> $Id: + * StoreEclipseUtil.java,v 1.2 2007/02/01 12:35:18 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.apache.commons.logging.Log; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.emf.teneo.Constants; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.PlatformUI; + +/** + * Convenience util, for example reads the property file and returns the property file. + * + * @author <a href="mailto:mtaal@elver.org">Martin Taal</a> + * @version $Revision: 1.4 $ + */ +public class StoreEclipseUtil { + /** Utility method to handle an error */ + public static void handleError(Throwable t, Log log) { + t.printStackTrace(System.err); + log.error(t); + MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), + "Error Occured", t.getMessage()); + } + + /** + * @see IActionDelegate#run(IAction) + */ + public static Properties readPropFile(IStructuredSelection selection) { + final IFile propFile = (IFile) selection.getFirstElement(); + final String filePath = propFile.getFullPath().toOSString(); + try { + final InputStream is = propFile.getContents(); + final Properties props = new Properties(); + props.load(is); + is.close(); + + // check some props + checkProperty(Constants.PROP_NAME, props); + checkProperty(Constants.PROP_EDITOR_EXTENSTION, Constants.PROP_EDITOR_ID, props); + return props; + } catch (IOException e) { + throw new StoreEclipseException("Exception when reading properties from: " + filePath, + e); + } catch (CoreException e) { + throw new StoreEclipseException("Exception when reading properties from: " + filePath, + e); + } + } + + /** Checks if the passed value is null, if not then an exception is thrown */ + private static void checkProperty(String propName, Properties props) { + if (props.getProperty(propName) == null) { + throw new StoreEclipseException("The ehb file does not contain the property: " + + propName); + } + } + + /** Checks if the passed value is null, if not then an exception is thrown */ + private static void checkProperty(String propName1, String propName2, Properties props) { + if (props.getProperty(propName1) == null && props.getProperty(propName2) == null) { + throw new StoreEclipseException("The ehb file must contain one of these properties: " + + propName1 + "," + propName2); + } + } +}
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StorePlugin.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StorePlugin.java new file mode 100755 index 000000000..11cb96f71 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/StorePlugin.java @@ -0,0 +1,91 @@ +/** + * <copyright> + * + * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Taal + * </copyright> + * + * $Id: StorePlugin.java,v 1.4 2008/02/28 07:07:29 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The main plugin class which is used for all plugins of elver. + */ +public class StorePlugin extends AbstractUIPlugin { + + // The shared instance. + private static StorePlugin plugin; + + /** + * The constructor. + */ + public StorePlugin() { + plugin = this; + } + + /** + * This method is called upon plug-in activation + */ + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + +// See bugzilla 207170 +// +// Properties props = new Properties(); +// try +// { +// props.load(StorePlugin.class.getResourceAsStream("log4j.properties")); +// } +// catch (IOException e) +// { +// throw new StoreEclipseException("Exception when reading log4j props", e); +// } +// +// // place the log file in the allowed location +// final File file = getStateLocation().makeAbsolute().toFile(); +// props.setProperty("log4j.appender.A1.File", file.getAbsolutePath() + +// File.separator + props.getProperty("log4j.appender.A1.File")); +// +// PropertyConfigurator.configure(props); + } + + /** + * This method is called when the plug-in is stopped + */ + @Override + public void stop(BundleContext context) throws Exception { + super.stop(context); + plugin = null; + } + + /** + * Returns the shared instance. + */ + public static StorePlugin getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given plug-in relative path. + * + * @param path + * the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.emf.teneo.hibernate.eclipse", path); + } +} diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/genxml/GenerateMappingAction.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/genxml/GenerateMappingAction.java new file mode 100755 index 000000000..a935d09e8 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/genxml/GenerateMappingAction.java @@ -0,0 +1,138 @@ +/** + * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights + * reserved. This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal </copyright> $Id: + * GenerateMappingAction.java,v 1.3 2007/02/01 12:35:18 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse.genxml; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.emf.teneo.eclipse.Messages; +import org.eclipse.emf.teneo.eclipse.StoreEclipseUtil; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +/** + * Is superclass for different generate descriptor file subclasses. + * + * @author <a href="mailto:mtaal@elver.org">Martin Taal</a> + * @version $Revision: 1.7 $ + */ + +public abstract class GenerateMappingAction implements IObjectActionDelegate { + /** The logger for this class */ + private static Log log = LogFactory.getLog(GenerateMappingAction.class); + + /** The list of selected ecore files */ + private ArrayList<IFile> ecoreFiles = new ArrayList<IFile>(); + + /** + * Constructor for Action1. + */ + public GenerateMappingAction() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + /** Should be implemented by subclasses */ + public abstract void run(IAction action); + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action, final String targetFileName, + String resultTitle1, final HashMap<String, String> options, + final String mainClass) { + final StringBuffer result = new StringBuffer(); + + for (int i = 0; i < ecoreFiles.size(); i++) { + result.append((ecoreFiles.get(i)).getLocation().toOSString()); + } + + if (ecoreFiles.size() == 0) { + Shell shell = new Shell(); + MessageDialog.openInformation(shell, Messages + .getString("teneo.create.or.mapping"), Messages + .getString("teneo.select.ecore.file")); + return; + } + + log.debug("Generating or descriptor file based on ecores in: " + + result.toString()); + + try { + final IContainer container = (ecoreFiles.get(0)).getParent(); + + // get the location of the ecores + final String[] ecoreLocations = new String[ecoreFiles.size()]; + ArrayList<IJavaProject> jprojects = new ArrayList<IJavaProject>(); + ArrayList<IProject> projects = new ArrayList<IProject>(); + for (int i = 0; i < ecoreFiles.size(); i++) { + final IFile ecoreFile = ecoreFiles.get(i); + ecoreLocations[i] = ecoreFile.getLocation().toOSString(); + + IProject project = ecoreFile.getProject(); + if (project != null && !projects.contains(project)) { + projects.add(project); + jprojects.add(JavaCore.create(project)); + } + } + + RunGenerateJob rgj = new RunGenerateJob(jprojects, ecoreLocations, + targetFileName, mainClass, options); + rgj.schedule(); + + Shell shell = new Shell(); + MessageDialog.openInformation(shell, resultTitle1, Messages + .getString("teneo.file.created") + + container.getName()); + + // is refresh a dangerous action, eclipse crashes? + container.refreshLocal(IResource.DEPTH_INFINITE, null); + } catch (Throwable t) { + StoreEclipseUtil.handleError(t, log); + } + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + if (!(selection instanceof IStructuredSelection)) + return; + + final IStructuredSelection structuredSelection = (IStructuredSelection) selection; + final Iterator<?> it = structuredSelection.iterator(); + ecoreFiles = new ArrayList<IFile>(); + while (it.hasNext()) { + final Object obj = it.next(); + if (obj instanceof IFile) { + ecoreFiles.add((IFile) obj); + } + } + } +}
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/genxml/RunGenerateJob.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/genxml/RunGenerateJob.java new file mode 100755 index 000000000..751926363 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/genxml/RunGenerateJob.java @@ -0,0 +1,234 @@ +/** + * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights + * reserved. This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal </copyright> $Id: + * RunGenerateJob.java,v 1.4 2007/02/01 12:35:18 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse.genxml; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.eclipse.core.resources.WorkspaceJob; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchConfigurationType; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; +import org.eclipse.debug.core.ILaunchManager; +import org.eclipse.emf.teneo.eclipse.StoreEclipseException; +import org.eclipse.jdt.core.ICompilationUnit; +import org.eclipse.jdt.core.IJavaElement; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IPackageFragment; +import org.eclipse.jdt.core.IPackageFragmentRoot; +import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; +import org.eclipse.jdt.launching.IRuntimeClasspathEntry; +import org.eclipse.jdt.launching.JavaRuntime; + +/** + * Generate a mapping file in a separate java program to use the classpath of + * the selected projects. + */ +public class RunGenerateJob extends WorkspaceJob implements + IJavaLaunchConfigurationConstants { + + /** Standard name of the generation action */ + private static final String CONFIGURATION_NAME = "Teneo OR-Mapping Generation"; + + /** The list of java projects */ + private final ArrayList<IJavaProject> jProjects; // IJavaProject + + /** Array of absolute paths to ecore files which are to be parsed */ + private final String[] ecores; + + /** The location to put the result */ + private final String targetFileName; + + /** The name of the main class */ + private final String mainClass; + + /** The options */ + private final HashMap<String, String> options; + + /** + * The constructor. + */ + public RunGenerateJob(ArrayList<IJavaProject> jProjects, String[] ecores, + String targetFileName, String mainClass, + HashMap<String, String> options) { + super("Generate Mapping File"); + this.jProjects = jProjects; + this.ecores = ecores; + this.targetFileName = targetFileName; + this.mainClass = mainClass; + this.options = options; + } + + /** + * Launches a separate java process using the classpaths of the passed + * projects + */ + + @Override + public IStatus runInWorkspace(IProgressMonitor monitor) + throws CoreException { + // first delete the old generation of the same name + ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); + ILaunchConfigurationType type = manager + .getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION); + ILaunchConfiguration[] configurations = manager + .getLaunchConfigurations(type); + for (ILaunchConfiguration element : configurations) { + if (element.getName().compareTo(CONFIGURATION_NAME) == 0) { + element.delete(); + } + } + + // create a new launch configuration + ILaunchConfigurationWorkingCopy workingCopy = type.newInstance(null, + CONFIGURATION_NAME); + + final List<String> classPath = determineClassPath(); + workingCopy.setAttribute(ATTR_DEFAULT_CLASSPATH, false); + workingCopy.setAttribute(ATTR_CLASSPATH, classPath); + workingCopy.setAttribute(ATTR_MAIN_TYPE_NAME, mainClass); + workingCopy.setAttribute(ATTR_PROJECT_NAME, (jProjects.get(0)) + .getProject().getName()); + // workingCopy.setAttribute(ATTR_WORKING_DIRECTORY, workingDir); + workingCopy.setAttribute(ATTR_PROGRAM_ARGUMENTS, getProgramArguments()); + workingCopy.doSave(); + workingCopy.launch(ILaunchManager.RUN_MODE, null); + return Status.OK_STATUS; + } + + /** Collect the classpath as a list of strings */ + private ArrayList<String> determineClassPath() throws CoreException { + ArrayList<String> result = new ArrayList<String>(); + + for (int i = 0; i < jProjects.size(); i++) { + final IJavaProject jProject = jProjects.get(i); + final IRuntimeClasspathEntry outputEntry = JavaRuntime + .newDefaultProjectClasspathEntry(jProject); + result.add(outputEntry.getMemento()); + } + + IPath systemLibsPath = new Path(JavaRuntime.JRE_CONTAINER); + IRuntimeClasspathEntry systemLibsEntry = JavaRuntime + .newRuntimeContainerClasspathEntry(systemLibsPath, + IRuntimeClasspathEntry.STANDARD_CLASSES); + result.add(systemLibsEntry.getMemento()); + + return result; + } + + /** Determine the classnames of the interfaces */ + private String getEPackageNames() { + try { + final ArrayList<String> result = new ArrayList<String>(); + for (int i = 0; i < jProjects.size(); i++) { + final IJavaProject ijp = jProjects.get(i); + for (int j = 0; j < ijp.getPackageFragmentRoots().length; j++) { + IPackageFragmentRoot ipf = ijp.getPackageFragmentRoots()[j]; + if (ipf.getClass().getName() + .endsWith("JarPackageFragmentRoot")) { + continue; + } + if (!ipf.exists()) { + continue; + } + for (int c = 0; c < ipf.getChildren().length; c++) { + walk(ipf.getChildren()[c], "", result); + } + } + } + + StringBuffer resultStr = new StringBuffer(); + for (int i = 0; i < result.size(); i++) { + final String epackage = result.get(i); + if (i > 0) { + resultStr.append(","); + } + resultStr.append(epackage); + } + return resultStr.toString(); + } catch (Exception e) { + throw new StoreEclipseException( + "Exception while looking for epackages in projects " + + e.getMessage(), e); + } + + } + + /** Walk the java element structure looking for EPackage sources */ + private void walk(IJavaElement ije, String pName, ArrayList<String> result) + throws Exception { + if (ije.getClass().getName().endsWith("JarPackageFragmentRoot")) { + return; + } + if (!(ije instanceof IPackageFragment)) { + return; + } + + final IPackageFragment pf = (IPackageFragment) ije; + final String packageName = pName + (pName.length() > 0 ? "." : "") + + pf.getElementName(); + for (int c = 0; c < pf.getChildren().length; c++) { + final IJavaElement child = pf.getChildren()[c]; + if (child instanceof IPackageFragment) { + walk(child, packageName, result); + } else if (child instanceof ICompilationUnit) { + // a source, check if it implements an EPackage + // TODO make this more robust for other packages which are also + // EPackages + final ICompilationUnit icu = (ICompilationUnit) child; + final String[] types = icu.getTypes()[0] + .getSuperInterfaceNames(); + for (String element : types) { + if (element.compareTo("EPackage") == 0) { + result.add(packageName + "." + + icu.getTypes()[0].getElementName()); + return; + } + } + if (icu.getTypes()[0].getSuperclassName() != null + && icu.getTypes()[0].getSuperclassName().equals( + "EPackageImpl")) { + result.add(packageName + "." + + icu.getTypes()[0].getElementName()); + return; + } + } + } + } + + /** Returns the program arguments as a string */ + private String getProgramArguments() { + StringBuffer args = new StringBuffer(); + append(args, targetFileName); + for (String key : options.keySet()) { + append(args, "+" + key + "," + options.get(key)); + } + + for (String element : ecores) { + append(args, element); + } + + append(args, "-" + getEPackageNames()); + + return args.toString(); + } + + /** Appends a program argument taking into account " and space */ + private void append(StringBuffer buffer, String value) { + buffer.append("\"" + value + "\" "); + } +} diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/messages.properties b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/messages.properties new file mode 100644 index 000000000..85376292f --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/messages.properties @@ -0,0 +1,25 @@ +# ============================================================================== +# Copyright (c) 2004 - 2009 Martin Taal and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Martin Taal +# ============================================================================== + +# ============================================================================== +# This properties file contains all strings subject to be shown in the UI. +# ============================================================================== + +teneo.create.or.mapping = Create EMF OR Mapping File +teneo.select.ecore.file = Please select a ecore file. +teneo.file.created = The mapping file has been created here: +teneo.export.xml = Export the contents of the datastore to XML +teneo.export.xmi = Export the contents of the datastore to XMI +teneo.select.parent = Select a parent location and enter a file name +teneo.import.xml = Select one or more XML resources to import from. +teneo.import.xmi = Select one or more XMI resources to import from. +teneo.import = Import +teneo.generate.orm.file = Generate ORM mapping file
\ No newline at end of file diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreExportXML.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreExportXML.java new file mode 100755 index 000000000..818c81f96 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreExportXML.java @@ -0,0 +1,201 @@ +/** + * <copyright> + * + * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Taal + * </copyright> + * + * $Id: StoreExportXML.java,v 1.5 2009/05/06 18:40:54 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse.resourcehandler; + +import java.io.ByteArrayInputStream; +import java.util.Properties; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IWorkspaceRunnable; +import org.eclipse.core.resources.ResourceAttributes; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.resources.WorkspaceJob; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.emf.teneo.eclipse.Messages; +import org.eclipse.emf.teneo.eclipse.StoreEclipseUtil; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.dialogs.ContainerGenerator; +import org.eclipse.ui.dialogs.SaveAsDialog; + +/** + * Generic action class for exporting xml from a resource file. + * + * @author <a href="mailto:mtaal@elver.org">Martin Taal</a> + * @version $Revision: 1.5 $ + */ + +public abstract class StoreExportXML implements IObjectActionDelegate { + /** The logger for this class */ + private static Log log = LogFactory.getLog(StoreExportXML.class); + + /** The selected ehb file */ + private IStructuredSelection selection = null; + + /** + * Constructor for Action1. + */ + public StoreExportXML() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + try { + final SaveAsDialog saDialog = new ExportSaveAsDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getShell()); + saDialog.open(); + final IPath path = saDialog.getResult(); + + if (path == null) { + return; // nothing selected + } + + // create the path + final IPath containerPath = path.removeLastSegments(1); + final ContainerGenerator cg = new ContainerGenerator(containerPath); + IWorkspaceRunnable operation = new IWorkspaceRunnable() { + public void run(IProgressMonitor monitor) throws CoreException { + cg.generateContainer(null); + } + }; + ResourcesPlugin.getWorkspace().run(operation, null); + + // get the file + final IFile destFile = ResourcesPlugin.getWorkspace().getRoot().getFile(path); + final Properties props = StoreEclipseUtil.readPropFile(selection); + + final WorkspaceJob wj = new LocalJob(destFile, props); + wj.schedule(); + } catch (CoreException c) { + StoreEclipseUtil.handleError(c, log); + } + } + + /** Does the real export */ + protected abstract byte[] doExport(Properties props); + + /** Can be overridden */ + protected boolean isXMLExport() { + return true; + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selected) { + if (!(selected instanceof IStructuredSelection)) { + return; + } + + final IStructuredSelection structSelection = (IStructuredSelection) selected; + selection = structSelection; + } + + /** Extends Save As dialog to add some specific export titles */ + private class ExportSaveAsDialog extends SaveAsDialog { + /** + * Creates a new Save As dialog for no specific file. + * + * @param parentShell + * the parent shell + */ + public ExportSaveAsDialog(Shell parentShell) { + super(parentShell); + } + + /* + * (non-Javadoc) Method declared in Window. + */ + @Override + protected Control createContents(Composite parent) { + Control contents = super.createContents(parent); + if (isXMLExport()) { + setTitle(Messages.getString("teneo.export.xml")); + } else { + setTitle(Messages.getString("teneo.export.xmi")); + } + setMessage(Messages.getString("teneo.select.parent")); + return contents; + } + } + + private class LocalJob extends WorkspaceJob { + + private IFile file; + private Properties props; + + LocalJob(IFile file, Properties props) { + super("Import"); + this.file = file; + this.props = props; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.resources.WorkspaceJob#runInWorkspace(org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { + + final byte[] content = doExport(props); + + IWorkspaceRunnable createOperation = new IWorkspaceRunnable() { + public void run(IProgressMonitor monitor) throws CoreException { + + // delete the file if it is present + // first set some attrs to make it possible to delete + final ResourceAttributes attrs = new ResourceAttributes(); + attrs.setArchive(false); + attrs.setReadOnly(false); + if (file.exists()) { + file.setResourceAttributes(attrs); + file.delete(true, null); + } + file.create(new ByteArrayInputStream(content), true, null); + } + }; + + ResourcesPlugin.getWorkspace().run(createOperation, null); + return Status.OK_STATUS; + } + } + +} diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreImportXML.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreImportXML.java new file mode 100755 index 000000000..3413f0571 --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreImportXML.java @@ -0,0 +1,136 @@ +/** + * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights + * reserved. This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal </copyright> $Id: + * StoreImportXML.java,v 1.2 2007/02/01 12:35:18 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse.resourcehandler; + +import java.util.Properties; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.resources.WorkspaceJob; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.emf.teneo.eclipse.Messages; +import org.eclipse.emf.teneo.eclipse.StoreEclipseUtil; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.dialogs.ResourceSelectionDialog; + +/** + * Performs the import xml action + * + * @author <a href="mailto:mtaal@elver.org">Martin Taal</a> + * @version $Revision: 1.6 $ + */ + +public abstract class StoreImportXML implements IObjectActionDelegate { + /** The logger for this class */ + private static Log log = LogFactory.getLog(StoreImportXML.class); + + /** The selected ehb file */ + private IStructuredSelection selection = null; + + /** + * Constructor for Action1. + */ + public StoreImportXML() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + /** Can be overridden */ + protected boolean isXMLImport() { + return true; + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + try { + final String title; + if (isXMLImport()) { + title = Messages.getString("teneo.import.xml"); + } else { + title = Messages.getString("teneo.import.xmi"); + } + + final ResourceSelectionDialog dialog = new ResourceSelectionDialog(PlatformUI.getWorkbench() + .getActiveWorkbenchWindow().getShell(), ResourcesPlugin.getWorkspace().getRoot(), title); + dialog.open(); + final Object[] fileObjs = dialog.getResult(); + + if (fileObjs == null) { + return; // nothing selected + } + + IFile[] files = new IFile[fileObjs.length]; + for (int i = 0; i < fileObjs.length; i++) { + files[i] = (IFile) fileObjs[i]; + } + + final Properties props = StoreEclipseUtil.readPropFile(selection); + final WorkspaceJob wj = new LocalJob(files, props); + wj.schedule(); + } catch (Exception c) { + StoreEclipseUtil.handleError(c, log); + } + } + + /** Imports the files into the store */ + protected abstract void doImport(IFile[] files, Properties props); + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selected) { + if (!(selected instanceof IStructuredSelection)) { + return; + } + + final IStructuredSelection structSelection = (IStructuredSelection) selected; + selection = structSelection; + } + + private class LocalJob extends WorkspaceJob { + + private IFile[] files; + private Properties props; + + LocalJob(IFile[] files, Properties props) { + super(Messages.getString("teneo.import")); + this.files = files; + this.props = props; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.resources.WorkspaceJob#runInWorkspace(org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { + doImport(files, props); + return Status.OK_STATUS; + } + } +} diff --git a/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreOpenResource.java b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreOpenResource.java new file mode 100755 index 000000000..22a1bc6cf --- /dev/null +++ b/core/org.eclipse.emf.teneo.eclipse/src/org/eclipse/emf/teneo/eclipse/resourcehandler/StoreOpenResource.java @@ -0,0 +1,140 @@ +/** + * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights + * reserved. This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v1.0 which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal </copyright> $Id: + * StoreOpenResource.java,v 1.2 2007/02/01 12:35:18 mtaal Exp $ + */ + +package org.eclipse.emf.teneo.eclipse.resourcehandler; + +import java.util.Properties; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.emf.teneo.Constants; +import org.eclipse.emf.teneo.eclipse.StoreEclipseException; +import org.eclipse.emf.teneo.eclipse.StoreEclipseUtil; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.IEditorDescriptor; +import org.eclipse.ui.IFileEditorMapping; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.FileEditorInput; + +/** + * Performs the open resource action based on the information in the property file + * + * @author <a href="mailto:mtaal@elver.org">Martin Taal</a> + * @version $Revision: 1.6 $ + */ +public abstract class StoreOpenResource implements IObjectActionDelegate { + /** The logger for this class */ + private static Log log = LogFactory.getLog(StoreOpenResource.class); + + /** The selected ehb file */ + protected IStructuredSelection selection = null; + + /** + * Constructor for Action1. + */ + public StoreOpenResource() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + final IFile propFile = (IFile) selection.getFirstElement(); + try { + final Properties props = StoreEclipseUtil.readPropFile(selection); + openDataStore(props); + + // now use the editor props to find the correct editor + final String editorextension = doTrim(props.getProperty(Constants.PROP_EDITOR_EXTENSTION)); + final String editorid = doTrim(props.getProperty(Constants.PROP_EDITOR_ID)); + + final String foundEditorID = getEditorID(editorid, editorextension); + + // and open it + final IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + final IWorkbenchPage page = workbenchWindow.getActivePage(); + page.openEditor(new FileEditorInput(propFile), foundEditorID); + } catch (Exception e) { + e.printStackTrace(System.err); + log.error(e); + MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Error Occured", e + .getMessage()); + } + } + + /** Ensure that the data store is opened */ + protected abstract void openDataStore(Properties props); + + /** Convenience method */ + private String doTrim(String totrim) { + if (totrim == null) { + return null; + } + return totrim.trim(); + } + + /** Returns the editor id on the basis of the editor id or the extension */ + private String getEditorID(String propID, String propExtension) { + if (propID != null) { + return propID; + } + final IWorkbench workbench = PlatformUI.getWorkbench(); + + IEditorDescriptor editorDesc = workbench.getEditorRegistry().getDefaultEditor(propExtension); + if (editorDesc == null) { + IFileEditorMapping[] mappings = workbench.getEditorRegistry().getFileEditorMappings(); + for (IFileEditorMapping map : mappings) { + // System.err.println(map.getExtension() + "-->" + map.getEditors()[0].getId()); + if (map.getExtension().compareTo(propExtension.toLowerCase()) == 0) { + editorDesc = map.getEditors()[0]; + break; + } + } + } + + if (editorDesc == null) { + throw new StoreEclipseException("No editor can be found for extension: " + propExtension); + } + return editorDesc.getId(); + } + + /** Creates a dummy file which is used to 'fool' the editor to open a specific rdb resource */ + public IFile getModelFile(IFile ehbFile, String extension) { + return ResourcesPlugin.getWorkspace().getRoot().getFile(ehbFile.getFullPath().append("hibernate." + extension)); + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selected) { + if (!(selected instanceof IStructuredSelection)) { + return; + } + + final IStructuredSelection structSelection = (IStructuredSelection) selected; + selection = structSelection; + } +}
\ No newline at end of file |