diff options
159 files changed, 0 insertions, 15118 deletions
diff --git a/assembly/features/org.eclipse.jpt.patch/.project b/assembly/features/org.eclipse.jpt.patch/.project deleted file mode 100644 index b7a2bf552d..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/.project +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.patch</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.pde.FeatureBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.pde.FeatureNature</nature> - </natures> -</projectDescription> diff --git a/assembly/features/org.eclipse.jpt.patch/build.properties b/assembly/features/org.eclipse.jpt.patch/build.properties deleted file mode 100644 index c381fb22bb..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/build.properties +++ /dev/null @@ -1,10 +0,0 @@ -bin.includes = feature.xml,\ - license.html,\ - feature.properties,\ - epl-v10.html,\ - eclipse_update_120.jpg -src.includes = eclipse_update_120.jpg,\ - epl-v10.html,\ - feature.properties,\ - feature.xml,\ - license.html diff --git a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html b/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html deleted file mode 100644 index 0d115f43fb..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html +++ /dev/null @@ -1,20 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="Build" content="Build"> - <title>Java Persistence Tools (JTP) 1.0.2 Patches</title> -</head> - -<body> - -<h1>JTP 2.0.2 Patches</h1> - -<h2>Feature Patched: org.eclipse.jpt.patch</h2> -<h3>Plugin(s) replaced:</h3> -<ul><li>org.eclipse.jpt.gen</li></ul> -<p>Bug <a href='https://bugs.eclipse.org/220297'>220297</a>. Entity generation creates Embeddables with compile errors in some cases.</p> - - -</body></html>
\ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg Binary files differdeleted file mode 100644 index bfdf708ad6..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg +++ /dev/null diff --git a/assembly/features/org.eclipse.jpt.patch/epl-v10.html b/assembly/features/org.eclipse.jpt.patch/epl-v10.html deleted file mode 100644 index ed4b196655..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ -<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="./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 lang=EN-US style='tab-interval:.5in'> - -<div class=Section1> - -<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b> -</p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>1. DEFINITIONS</span></b> </p> - -<p><span style='font-size:10.0pt'>"Contribution" means:</span> </p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>i) -changes to the Program, and</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii) -additions to the Program;</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:10.0pt'>"Contributor" means any person or -entity that distributes the Program.</span> </p> - -<p><span style='font-size:10.0pt'>"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:10.0pt'>"Program" means the Contributions -distributed in accordance with this Agreement.</span> </p> - -<p><span style='font-size:10.0pt'>"Recipient" means anyone who -receives the Program under this Agreement, including all Contributors.</span> </p> - -<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:10.0pt'>3. REQUIREMENTS</span></b> </p> - -<p><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>a) -it complies with the terms and conditions of this Agreement; and</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) -its license agreement:</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:10.0pt'>When the Program is made available in source -code form:</span> </p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a) -it must be made available under this Agreement; and </span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a -copy of this Agreement must be included with each copy of the Program. </span></p> - -<p><span style='font-size:10.0pt'>Contributors may not remove or alter any -copyright notices contained within the Program. </span></p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>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:10.0pt'>5. NO WARRANTY</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>7. GENERAL</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>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:10.0pt'>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:10.0pt'>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:10.0pt'>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/assembly/features/org.eclipse.jpt.patch/feature.properties b/assembly/features/org.eclipse.jpt.patch/feature.properties deleted file mode 100644 index a8457ea0cc..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/feature.properties +++ /dev/null @@ -1,143 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# 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: -# Oracle - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Java Persistence Tools (JTP) Patches - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse.org - -# "updateSiteName" property - label for the update site -updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site - -# "description" property - description of the feature -description=\ -Patch(s) for Java Persistence API (JPA) Tools. \n\ -See bug 220297 (https://bugs.eclipse.org/bugs/220297) Entity generation creates Embeddables with compile errors in some cases \n\ - - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006-08 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -licenseURL=license.html - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -license=\ -ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\ -June 06, 2007\n\ -\n\ -Usage Of Content\n\ -\n\ -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ -OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ -USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ -AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ -NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ -AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ -AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ -OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ -TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ -OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ -BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ -\n\ -Applicable Licenses\n\ -\n\ -Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\ -is provided to you under the terms and conditions of the Eclipse Public\n\ -License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\ -Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ -For purposes of the EPL, "Program" will mean the Content.\n\ -\n\ -Content includes, but is not limited to, source code, object code,\n\ -documentation and other files maintained in the Eclipse.org CVS\n\ -repository ("Repository") in CVS modules ("Modules") and made available\n\ -as downloadable archives ("Downloads").\n\ -\n\ - - Content may be structured and packaged into modules to facilitate delivering,\n\ - extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ - plug-in fragments ("Fragments"), and features ("Features").\n\ - - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\ - in a directory named "plugins".\n\ - - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ - Each Feature may be packaged as a sub-directory in a directory named "features".\n\ - Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ - numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ - - Features may also include other Features ("Included Features"). Within a Feature, files\n\ - named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ -\n\ -Features may also include other Features ("Included Features"). Files named\n\ -"feature.xml" may contain a list of the names and version numbers of\n\ -Included Features.\n\ -\n\ -The terms and conditions governing Plug-ins and Fragments should be\n\ -contained in files named "about.html" ("Abouts"). The terms and\n\ -conditions governing Features and Included Features should be contained\n\ -in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ -Licenses may be located in any directory of a Download or Module\n\ -including, but not limited to the following locations:\n\ -\n\ - - The top-level (root) directory\n\ - - Plug-in and Fragment directories\n\ - - Inside Plug-ins and Fragments packaged as JARs\n\ - - Sub-directories of the directory named "src" of certain Plug-ins\n\ - - Feature directories\n\ -\n\ -Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ -Eclipse Update Manager, you must agree to a license ("Feature Update\n\ -License") during the installation process. If the Feature contains\n\ -Included Features, the Feature Update License should either provide you\n\ -with the terms and conditions governing the Included Features or inform\n\ -you where you can locate them. Feature Update Licenses may be found in\n\ -the "license" property of files named "feature.properties". Such Abouts,\n\ -Feature Licenses and Feature Update Licenses contain the terms and\n\ -conditions (or references to such terms and conditions) that govern your\n\ -use of the associated Content in that directory.\n\ -\n\ -THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\ -TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ -SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ -\n\ - - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ - - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ - - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ - - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\ - - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ - - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ - - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\ -\n\ -IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ -TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\ -is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ -govern that particular Content.\n\ -\n\ -Cryptography\n\ -\n\ -Content may contain encryption software. The country in which you are\n\ -currently may have restrictions on the import, possession, and use,\n\ -and/or re-export to another country, of encryption software. BEFORE\n\ -using any encryption software, please check the country's laws,\n\ -regulations and policies concerning the import, possession, or use,\n\ -and re-export of encryption software, to see if this is permitted.\n\ -\n\ -Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n -########### end of license property ########################################## diff --git a/assembly/features/org.eclipse.jpt.patch/feature.xml b/assembly/features/org.eclipse.jpt.patch/feature.xml deleted file mode 100644 index 4fae92b5fa..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/feature.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<feature - id="org.eclipse.jpt.patch" - label="%featureName" - version="1.0.2.qualifier" - provider-name="%providerName"> - - <description url="http://download.eclipse.org/webtools/patches/"> - %description - </description> - - <copyright> - %copyright - </copyright> - - <license url="%licenseURL"> - %license - </license> - - <url> - <update label="Web Tools Platform (WTP) Patches" url="http://download.eclipse.org/webtools/patches/"/> - </url> - - <requires> - <import feature="org.eclipse.jpt.feature" version="1.0.2.v200802140100-77-7_CYQCD2CaLYCHCD" patch="true"/> - </requires> - - <plugin - id="org.eclipse.jpt.gen" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - -</feature> diff --git a/assembly/features/org.eclipse.jpt.patch/license.html b/assembly/features/org.eclipse.jpt.patch/license.html deleted file mode 100644 index 2347060ef3..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/license.html +++ /dev/null @@ -1,93 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> -<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html --> -<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE> -<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"> -<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD> -<BODY lang=EN-US vLink=purple link=blue> -<H2>Eclipse Foundation Software User Agreement</H2> -<P>January 28, 2005</P> -<H3>Usage Of Content</H3> -<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION -AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF -THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE -TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED -BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED -BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE -AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE -TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY -APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU -MAY NOT USE THE CONTENT.</P> -<H3>Applicable Licenses</H3> -<P>Unless otherwise indicated, all Content made available by the Eclipse -Foundation is provided to you under the terms and conditions of the Eclipse -Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this -Content and is also 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>Content includes, but is not limited to, source code, object code, -documentation and other files maintained in the Eclipse.org CVS repository -("Repository") in CVS modules ("Modules") and made available as downloadable -archives ("Downloads").</P> -<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments -("Fragments"), and features ("Features"). A Feature is a bundle of one or more -Plug-ins and/or Fragments and associated material. Files named "feature.xml" may -contain a list of the names and version numbers of the Plug-ins and/or Fragments -associated with a Feature. Plug-ins and Fragments are located in directories -named "plugins" and Features are located in directories named "features".</P> -<P>Features may also include other Features ("Included Features"). Files named -"feature.xml" may contain a list of the names and version numbers of Included -Features.</P> -<P>The terms and conditions governing Plug-ins and Fragments should be contained -in files named "about.html" ("Abouts"). The terms and conditions governing -Features and Included Features should be contained in files named "license.html" -("Feature Licenses"). Abouts and Feature Licenses may be located in any -directory of a Download or Module including, but not limited to the following -locations:</P> -<UL> - <LI>The top-level (root) directory - <LI>Plug-in and Fragment directories - <LI>Subdirectories of the directory named "src" of certain Plug-ins - <LI>Feature directories </LI></UL> -<P>Note: if a Feature made available by the Eclipse Foundation is installed -using the Eclipse Update Manager, you must agree to a license ("Feature Update -License") during the installation process. If the Feature contains Included -Features, the Feature Update License should either provide you with the terms -and conditions governing the Included Features or inform you where you can -locate them. Feature Update Licenses may be found in the "license" property of -files named "feature.properties". Such Abouts, Feature Licenses and Feature -Update Licenses contain the terms and conditions (or references to such terms -and conditions) that govern your use of the associated Content in that -directory.</P> -<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL -OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE -OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P> -<UL> - <LI>Common Public License Version 1.0 (available at <A - href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) - - <LI>Apache Software License 1.1 (available at <A - href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) - - <LI>Apache Software License 2.0 (available at <A - href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) - - <LI>IBM Public License 1.0 (available at <A - href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) - - <LI>Metro Link Public License 1.00 (available at <A - href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) - - <LI>Mozilla Public License Version 1.1 (available at <A - href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) - </LI></UL> -<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR -TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is -provided, please contact the Eclipse Foundation to determine what terms and -conditions govern that particular Content.</P> -<H3>Cryptography</H3> -<P>Content may contain encryption software. The country in which you are -currently may have restrictions on the import, possession, and use, and/or -re-export to another country, of encryption software. BEFORE using any -encryption software, please check the country's laws, regulations and policies -concerning the import, possession, or use, and re-export of encryption software, -to see if this is permitted.</P></BODY></HTML> diff --git a/assembly/features/org.eclipse.jpt.sdk/.cvsignore b/assembly/features/org.eclipse.jpt.sdk/.cvsignore deleted file mode 100644 index bc2abf75c1..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -*.bin.dist.zip -build.xml -features -plugins diff --git a/assembly/features/org.eclipse.jpt.sdk/.project b/assembly/features/org.eclipse.jpt.sdk/.project deleted file mode 100644 index 821d453136..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/.project +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.sdk</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.pde.FeatureBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.pde.FeatureNature</nature> - </natures> -</projectDescription> diff --git a/assembly/features/org.eclipse.jpt.sdk/build.properties b/assembly/features/org.eclipse.jpt.sdk/build.properties deleted file mode 100644 index 7200939aca..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/build.properties +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# 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: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = feature.xml,\ - eclipse_update_120.jpg,\ - epl-v10.html,\ - license.html,\ - feature.properties diff --git a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg Binary files differdeleted file mode 100644 index bfdf708ad6..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg +++ /dev/null diff --git a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html b/assembly/features/org.eclipse.jpt.sdk/epl-v10.html deleted file mode 100644 index ed4b196655..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ -<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="./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 lang=EN-US style='tab-interval:.5in'> - -<div class=Section1> - -<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b> -</p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>1. DEFINITIONS</span></b> </p> - -<p><span style='font-size:10.0pt'>"Contribution" means:</span> </p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>i) -changes to the Program, and</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii) -additions to the Program;</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:10.0pt'>"Contributor" means any person or -entity that distributes the Program.</span> </p> - -<p><span style='font-size:10.0pt'>"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:10.0pt'>"Program" means the Contributions -distributed in accordance with this Agreement.</span> </p> - -<p><span style='font-size:10.0pt'>"Recipient" means anyone who -receives the Program under this Agreement, including all Contributors.</span> </p> - -<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:10.0pt'>3. REQUIREMENTS</span></b> </p> - -<p><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>a) -it complies with the terms and conditions of this Agreement; and</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) -its license agreement:</span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:.5in'><span style='font-size:10.0pt'>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:10.0pt'>When the Program is made available in source -code form:</span> </p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a) -it must be made available under this Agreement; and </span></p> - -<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a -copy of this Agreement must be included with each copy of the Program. </span></p> - -<p><span style='font-size:10.0pt'>Contributors may not remove or alter any -copyright notices contained within the Program. </span></p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>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:10.0pt'>5. NO WARRANTY</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>7. GENERAL</span></b> </p> - -<p><span style='font-size:10.0pt'>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:10.0pt'>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:10.0pt'>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:10.0pt'>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:10.0pt'>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/assembly/features/org.eclipse.jpt.sdk/feature.properties b/assembly/features/org.eclipse.jpt.sdk/feature.properties deleted file mode 100644 index 64b1fab799..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/feature.properties +++ /dev/null @@ -1,170 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# 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: -# Oracle. - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools project SDK - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse.org - -# "updateSiteName" property - label for the update site -updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site - -# "description" property - description of the feature -description=Dali Java Persistence Tools project SDK - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -licenseURL=license.html - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -license=\ -Eclipse Foundation Software User Agreement\n\ -April 14, 2010\n\ -\n\ -Usage Of Content\n\ -\n\ -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ -OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ -USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ -AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ -NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ -AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ -AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ -OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ -TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ -OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ -BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ -\n\ -Applicable Licenses\n\ -\n\ -Unless otherwise indicated, all Content made available by the\n\ -Eclipse Foundation is provided to you under the terms and conditions of\n\ -the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ -provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ -For purposes of the EPL, "Program" will mean the Content.\n\ -\n\ -Content includes, but is not limited to, source code, object code,\n\ -documentation and other files maintained in the Eclipse Foundation source code\n\ -repository ("Repository") in software modules ("Modules") and made available\n\ -as downloadable archives ("Downloads").\n\ -\n\ - - Content may be structured and packaged into modules to facilitate delivering,\n\ - extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ - plug-in fragments ("Fragments"), and features ("Features").\n\ - - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ - in a directory named "plugins".\n\ - - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ - Each Feature may be packaged as a sub-directory in a directory named "features".\n\ - Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ - numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ - - Features may also include other Features ("Included Features"). Within a Feature, files\n\ - named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ -\n\ -The terms and conditions governing Plug-ins and Fragments should be\n\ -contained in files named "about.html" ("Abouts"). The terms and\n\ -conditions governing Features and Included Features should be contained\n\ -in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ -Licenses may be located in any directory of a Download or Module\n\ -including, but not limited to the following locations:\n\ -\n\ - - The top-level (root) directory\n\ - - Plug-in and Fragment directories\n\ - - Inside Plug-ins and Fragments packaged as JARs\n\ - - Sub-directories of the directory named "src" of certain Plug-ins\n\ - - Feature directories\n\ -\n\ -Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ -Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ -Update License") during the installation process. If the Feature contains\n\ -Included Features, the Feature Update License should either provide you\n\ -with the terms and conditions governing the Included Features or inform\n\ -you where you can locate them. Feature Update Licenses may be found in\n\ -the "license" property of files named "feature.properties" found within a Feature.\n\ -Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ -terms and conditions (or references to such terms and conditions) that\n\ -govern your use of the associated Content in that directory.\n\ -\n\ -THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ -TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ -SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ -\n\ - - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ - - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ - - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ - - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ - - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ -\n\ -IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ -TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ -is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ -govern that particular Content.\n\ -\n\ -\n\Use of Provisioning Technology\n\ -\n\ -The Eclipse Foundation makes available provisioning software, examples of which include,\n\ -but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ -the purpose of allowing users to install software, documentation, information and/or\n\ -other materials (collectively "Installable Software"). This capability is provided with\n\ -the intent of allowing such users to install, extend and update Eclipse-based products.\n\ -Information about packaging Installable Software is available at\n\ -http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ -\n\ -You may use Provisioning Technology to allow other parties to install Installable Software.\n\ -You shall be responsible for enabling the applicable license agreements relating to the\n\ -Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ -in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ -making it available in accordance with the Specification, you further acknowledge your\n\ -agreement to, and the acquisition of all necessary rights to permit the following:\n\ -\n\ - 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ - the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ - extending or updating the functionality of an Eclipse-based product.\n\ - 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ - Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ - 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ - govern the use of the Installable Software ("Installable Software Agreement") and such\n\ - Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ - with the Specification. Such Installable Software Agreement must inform the user of the\n\ - terms and conditions that govern the Installable Software and must solicit acceptance by\n\ - the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ - indication of agreement by the user, the provisioning Technology will complete installation\n\ - of the Installable Software.\n\ -\n\ -Cryptography\n\ -\n\ -Content may contain encryption software. The country in which you are\n\ -currently may have restrictions on the import, possession, and use,\n\ -and/or re-export to another country, of encryption software. BEFORE\n\ -using any encryption software, please check the country's laws,\n\ -regulations and policies concerning the import, possession, or use, and\n\ -re-export of encryption software, to see if this is permitted.\n\ -\n\ -Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n -########### end of license property ########################################## diff --git a/assembly/features/org.eclipse.jpt.sdk/feature.xml b/assembly/features/org.eclipse.jpt.sdk/feature.xml deleted file mode 100644 index 28dc74f6c8..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/feature.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<feature - id="org.eclipse.jpt.sdk" - label="%featureName" - version="2.3.1.qualifier" - provider-name="%providerName" - plugin="org.eclipse.jpt" - image="eclipse_update_120.jpg"> - - <description> - %description - </description> - - <copyright> - %copyright - </copyright> - - <license url="license.html"> - %license - </license> - - <url> - <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/> - <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/> - </url> - - <includes - id="org.eclipse.jpt_sdk.feature" - version="0.0.0"/> - - <includes - id="org.eclipse.jpt.eclipselink_sdk.feature" - version="0.0.0"/> - - <plugin - id="org.eclipse.jpt" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - -</feature> diff --git a/assembly/features/org.eclipse.jpt.sdk/license.html b/assembly/features/org.eclipse.jpt.sdk/license.html deleted file mode 100644 index c184ca36a9..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/license.html +++ /dev/null @@ -1,107 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1" ?> -<!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>Eclipse Foundation Software User Agreement</title> -</head> - -<body lang="EN-US"> -<h2>Eclipse Foundation Software User Agreement</h2> -<p>April 14, 2010</p> - -<h3>Usage Of Content</h3> - -<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS - (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND - CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE - OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR - NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND - CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> - -<h3>Applicable Licenses</h3> - -<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 - ("EPL"). A copy of the EPL is provided with this Content and is also 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>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code - repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").</p> - -<ul> - <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li> - <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> - <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins - and/or Fragments associated with that Feature.</li> - <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li> -</ul> - -<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and -Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module -including, but not limited to the following locations:</p> - -<ul> - <li>The top-level (root) directory</li> - <li>Plug-in and Fragment directories</li> - <li>Inside Plug-ins and Fragments packaged as JARs</li> - <li>Sub-directories of the directory named "src" of certain Plug-ins</li> - <li>Feature directories</li> -</ul> - -<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the -installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or -inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. -Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in -that directory.</p> - -<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE -OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> - -<ul> - <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> - <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> - <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> - <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> - <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> -</ul> - -<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please -contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p> - - -<h3>Use of Provisioning Technology</h3> - -<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse - Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or - other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to - install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a - href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> - ("Specification").</p> - -<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the - applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology - in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the - Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p> - -<ol> - <li>A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology - on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based - product.</li> - <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be - accessed and copied to the Target Machine.</li> - <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable - Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target - Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern - the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such - indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li> -</ol> - -<h3>Cryptography</h3> - -<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to - another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import, - possession, or use, and re-export of encryption software, to see if this is permitted.</p> - -<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> -</body> -</html> diff --git a/assembly/features/org.eclipse.jpt.tests/.project b/assembly/features/org.eclipse.jpt.tests/.project deleted file mode 100644 index c9a282f03f..0000000000 --- a/assembly/features/org.eclipse.jpt.tests/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.tests</name> - <comment>Unused Project</comment> -</projectDescription>
\ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt/.project b/assembly/features/org.eclipse.jpt/.project deleted file mode 100644 index 7a69c2f3bf..0000000000 --- a/assembly/features/org.eclipse.jpt/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt</name> - <comment>Unused Project</comment> -</projectDescription>
\ No newline at end of file diff --git a/assembly/plugins/org.eclipse.jpt/.cvsignore b/assembly/plugins/org.eclipse.jpt/.cvsignore deleted file mode 100644 index c9401a2c83..0000000000 --- a/assembly/plugins/org.eclipse.jpt/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -build.xml -org.eclipse.jpt_1.0.0.*
\ No newline at end of file diff --git a/assembly/plugins/org.eclipse.jpt/.project b/assembly/plugins/org.eclipse.jpt/.project deleted file mode 100644 index f51b04cc90..0000000000 --- a/assembly/plugins/org.eclipse.jpt/.project +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <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> - </natures> -</projectDescription> diff --git a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs b/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 4aec29d1cd..0000000000 --- a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Sun May 27 15:10:09 EDT 2007 -eclipse.preferences.version=1 -encoding/<project>=ISO-8859-1 diff --git a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF b/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF deleted file mode 100644 index a5fbedd077..0000000000 --- a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF +++ /dev/null @@ -1,7 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.jpt; singleton:=true -Bundle-Version: 2.3.1.qualifier -Bundle-Localization: plugin -Bundle-Vendor: %providerName diff --git a/assembly/plugins/org.eclipse.jpt/about.html b/assembly/plugins/org.eclipse.jpt/about.html deleted file mode 100644 index ca606b1bb5..0000000000 --- a/assembly/plugins/org.eclipse.jpt/about.html +++ /dev/null @@ -1,34 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<HTML> - -<head> -<title>About</title> -<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> -</head> - -<BODY lang="EN-US"> - -<H3>About This Content</H3> - -<P>June 06, 2007</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/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</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/assembly/plugins/org.eclipse.jpt/about.ini b/assembly/plugins/org.eclipse.jpt/about.ini deleted file mode 100644 index 588a325a8f..0000000000 --- a/assembly/plugins/org.eclipse.jpt/about.ini +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# 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: -# Oracle. - initial API and implementation -############################################################################### - -# 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=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (translated) -# needed for primary features only - -# Property "welcomePage" contains path to welcome page (special XML-based format) -# optional - -# Property "welcomePerspective" contains the id of the perspective in which the -# welcome page is to be opened. -# optional - -# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page -# optional -tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm - - diff --git a/assembly/plugins/org.eclipse.jpt/about.mappings b/assembly/plugins/org.eclipse.jpt/about.mappings deleted file mode 100644 index bddaab4310..0000000000 --- a/assembly/plugins/org.eclipse.jpt/about.mappings +++ /dev/null @@ -1,6 +0,0 @@ -# about.mappings -# contains fill-ins for about.properties -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file does not need to be translated. - -0=@build@
\ No newline at end of file diff --git a/assembly/plugins/org.eclipse.jpt/about.properties b/assembly/plugins/org.eclipse.jpt/about.properties deleted file mode 100644 index c74a186a13..0000000000 --- a/assembly/plugins/org.eclipse.jpt/about.properties +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# 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: -# Oracle. - initial API and implementation -############################################################################### - -# 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. - -blurb=Dali Java Persistence Tools\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2006. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools diff --git a/assembly/plugins/org.eclipse.jpt/build.properties b/assembly/plugins/org.eclipse.jpt/build.properties deleted file mode 100644 index 0ccfb0ebb8..0000000000 --- a/assembly/plugins/org.eclipse.jpt/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2007 Oracle. -# 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: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = META-INF/,\ - about.ini,\ - about.html,\ - about.mappings,\ - about.properties,\ - eclipse32.gif,\ - eclipse32.png,\ - plugin.properties,\ - component.xml diff --git a/assembly/plugins/org.eclipse.jpt/component.xml b/assembly/plugins/org.eclipse.jpt/component.xml deleted file mode 100644 index 11f133f65a..0000000000 --- a/assembly/plugins/org.eclipse.jpt/component.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt"> -<description url=""></description> -<component-depends unrestricted="true"></component-depends> -<plugin id="org.eclipse.jpt" fragment="false"/> -<plugin id="org.eclipse.jpt.core" fragment="false"/> -<plugin id="org.eclipse.jpt.db" fragment="false"/> -<plugin id="org.eclipse.jpt.db.ui" fragment="false"/> -<plugin id="org.eclipse.jpt.gen" fragment="false"/> -<plugin id="org.eclipse.jpt.ui" fragment="false"/> -<plugin id="org.eclipse.jpt.utility" fragment="false"/> -</component>
\ No newline at end of file diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.gif b/assembly/plugins/org.eclipse.jpt/eclipse32.gif Binary files differdeleted file mode 100644 index e6ad7ccd75..0000000000 --- a/assembly/plugins/org.eclipse.jpt/eclipse32.gif +++ /dev/null diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.png b/assembly/plugins/org.eclipse.jpt/eclipse32.png Binary files differdeleted file mode 100644 index 568fac1d05..0000000000 --- a/assembly/plugins/org.eclipse.jpt/eclipse32.png +++ /dev/null diff --git a/assembly/plugins/org.eclipse.jpt/plugin.properties b/assembly/plugins/org.eclipse.jpt/plugin.properties deleted file mode 100644 index c3c055a778..0000000000 --- a/assembly/plugins/org.eclipse.jpt/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# 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: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools -providerName = Eclipse.org diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.classpath b/common/tests/org.eclipse.jpt.common.ui.tests/.classpath deleted file mode 100644 index 62dd151822..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/.classpath +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <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"> - <accessrules> - <accessrule kind="accessible" pattern="org/eclipse/jpt/common/ui/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jpt/common/utility/**"/> - </accessrules> - </classpathentry> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.cvsignore b/common/tests/org.eclipse.jpt.common.ui.tests/.cvsignore deleted file mode 100644 index ba077a4031..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.project b/common/tests/org.eclipse.jpt.common.ui.tests/.project deleted file mode 100644 index 0e0633e91a..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.common.ui.tests</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/common/tests/org.eclipse.jpt.common.ui.tests/.settings/org.eclipse.jdt.core.prefs b/common/tests/org.eclipse.jpt.common.ui.tests/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 1da1cd1a72..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Tue Mar 08 12:06:44 EST 2011 -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/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF b/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF deleted file mode 100644 index 8aa4fa0986..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,21 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.ui.tests -Bundle-Version: 1.0.0.qualifier -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: - org.junit;bundle-version="4.3.1", - org.eclipse.core.runtime;bundle-version="[3.6.100,4.0.0)", - org.eclipse.jface;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.common.ui;bundle-version="[1.0.0,2.0.0)", - org.eclipse.ui.forms;bundle-version="[3.5.100,4.0.0)", - org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)", - org.eclipse.ui.navigator;bundle-version="[3.5.0,4.0.0)" -Export-Package: org.eclipse.jpt.common.ui.tests;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.jface;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.swt;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.util;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.utility.swt;x-internal:=true diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/build.properties b/common/tests/org.eclipse.jpt.common.ui.tests/build.properties deleted file mode 100644 index 4dce676b59..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - . diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties b/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties deleted file mode 100644 index 7b81997383..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName=Dali Java Persistence Tools - Common UI Tests -providerName=Eclipse Web Tools Platform diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java deleted file mode 100644 index bb3b72fe07..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.common.ui.tests.internal.swt.JptUiSWTTests; -import org.eclipse.jpt.common.ui.tests.internal.util.JptUiUtilTests; - -/** - * Runs all JPT UI Tests - */ -public class JptCommonUiTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptCommonUiTests.class.getPackage().getName()); - suite.addTest(JptUiSWTTests.suite()); - suite.addTest(JptUiUtilTests.suite()); - return suite; - } - - private JptCommonUiTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java deleted file mode 100644 index 223b8e64cd..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java +++ /dev/null @@ -1,602 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.jface; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.BaseLabelProvider; -import org.eclipse.jface.viewers.ComboViewer; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.jface.AbstractItemLabelProvider; -import org.eclipse.jpt.common.ui.internal.jface.AbstractTreeItemContentProvider; -import org.eclipse.jpt.common.ui.internal.jface.DelegatingTreeContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.ItemLabelProvider; -import org.eclipse.jpt.common.ui.jface.ItemLabelProviderFactory; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.NullCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.graphics.PaletteData; -import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -public class DelegatingLabelProviderUiTest extends ApplicationWindow -{ - private TreeViewer tree; - - private WritablePropertyValueModel<Vehicle> selectedVehicle; - - - public static void main(String[] args) { - Window window = new DelegatingLabelProviderUiTest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - - private DelegatingLabelProviderUiTest(String[] args) { - super(null); - this.selectedVehicle = new SimplePropertyValueModel<Vehicle>(); - } - - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 400); - parent.setLayout(new GridLayout()); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH)); - mainPanel.setLayout(new GridLayout()); - buildTreePanel(mainPanel); - buildControlPanel(mainPanel); - return mainPanel; - } - - private void buildTreePanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL_BOTH)); - panel.setLayout(new GridLayout()); - - Label label = new Label(panel, SWT.NONE); - label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); - label.setText("My Vehicles"); - - tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); - DelegatingContentAndLabelProvider contentAndLabelProvider = - new DelegatingTreeContentAndLabelProvider( - new VehicleContentProviderFactory(), - new VehicleLabelProviderFactory()); - tree.setContentProvider(contentAndLabelProvider); - tree.setLabelProvider(contentAndLabelProvider); - tree.setInput(new Root()); - tree.addSelectionChangedListener(buildTreeSelectionChangedListener()); - } - - private ISelectionChangedListener buildTreeSelectionChangedListener() { - return new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - selectedVehicle.setValue((Vehicle) ((IStructuredSelection) event.getSelection()).getFirstElement()); - } - }; - } - - private void buildControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - panel.setLayout(new GridLayout()); - buildUpperControlPanel(panel); - buildLowerControlPanel(panel); - } - - private void buildUpperControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - panel.setLayout(new GridLayout(2, true)); - buildVehicleCombo(panel); - buildColorCombo(panel); - } - - private void buildVehicleCombo(Composite parent) { - final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY); - combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - combo.setContentProvider(new ArrayContentProvider()); - combo.setLabelProvider(new VehicleTypeLabelProvider()); - combo.setInput( - new VehicleType[] { - VehicleType.BICYCLE, VehicleType.CAR, - VehicleType.TRUCK, VehicleType.BOAT - }); - combo.getCombo().setEnabled(false); - combo.addSelectionChangedListener( - new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - selectedVehicle().setVehicleType((VehicleType) ((StructuredSelection) event.getSelection()).getFirstElement()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - combo.getCombo().setEnabled(vehicle != null); - combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.vehicleType())); - } - }); - } - - private void buildColorCombo(Composite parent) { - final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY); - combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - combo.setContentProvider(new ArrayContentProvider()); - combo.setLabelProvider(new ColorLabelProvider()); - combo.setInput(new Color[] {Color.RED, Color.BLUE, Color.YELLOW, Color.GREEN}); - combo.addSelectionChangedListener( - new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - selectedVehicle().setColor((Color) ((StructuredSelection) event.getSelection()).getFirstElement()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - combo.getCombo().setEnabled(vehicle != null); - combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.color())); - } - }); - } - - private void buildLowerControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - panel.setLayout(new GridLayout(3, false)); - buildEffectsLabel(panel); - buildGreyedCheckBox(panel); - buildTranslucentCheckBox(panel); - buildActionPanel(panel); - } - - private void buildEffectsLabel(Composite parent) { - Label label = new Label(parent, SWT.LEFT); - label.setText("Color effects: "); - label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false, 3, 1)); - } - - private void buildGreyedCheckBox(Composite parent) { - final Button button = new Button(parent, SWT.CHECK); - button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); - button.setText("greyed"); - button.setEnabled(false); - button.addSelectionListener( - new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - selectedVehicle().setGreyed(button.getSelection()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - button.setEnabled(vehicle != null); - button.setSelection(vehicle != null && vehicle.isGreyed()); - } - }); - } - - private void buildTranslucentCheckBox(Composite parent) { - final Button button = new Button(parent, SWT.CHECK); - button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, true, false)); - button.setText("translucent"); - button.setEnabled(false); - button.addSelectionListener( - new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - selectedVehicle().setTranslucent(button.getSelection()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - button.setEnabled(vehicle != null); - button.setSelection(vehicle != null && vehicle.isTranslucent()); - } - }); - } - - private void buildActionPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.END, GridData.FILL, false, false)); - panel.setLayout(new GridLayout()); - buildRefreshTreeACI().fill(panel); - } - - private ActionContributionItem buildRefreshTreeACI() { - Action action = new Action("Refresh tree", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - refreshTree(); - } - }; - action.setToolTipText("Refresh the tree's labels"); - return new ActionContributionItem(action); - } - - void refreshTree() { - tree.refresh(); - } - - private Vehicle selectedVehicle() { - return selectedVehicle.getValue(); - } - - - private static class VehicleTypeLabelProvider extends BaseLabelProvider - implements ILabelProvider - { - public Image getImage(Object element) { - return null; - } - - public String getText(Object element) { - return ((VehicleType) element).description(); - } - } - - - private static class ColorLabelProvider extends BaseLabelProvider - implements ILabelProvider - { - public Image getImage(Object element) { - return null; - } - - public String getText(Object element) { - return ((Color) element).description(); - } - } - - - private static class VehicleContentProviderFactory - implements TreeItemContentProviderFactory - { - public TreeItemContentProvider buildItemContentProvider(Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) { - if (item instanceof Root) { - return new RootContentProvider( - (Root) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - return new VehicleContentProvider( - (Vehicle) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - } - - - private static class RootContentProvider extends AbstractTreeItemContentProvider<Vehicle> - { - public RootContentProvider(Root item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) { - super(item, contentAndLabelProvider); - } - - @Override - public Root getModel() { - return (Root) super.getModel(); - } - - @Override - public Object getParent() { - return null; - } - - @Override - protected CollectionValueModel<Vehicle> buildChildrenModel() { - return new StaticCollectionValueModel<Vehicle>(this.getModel().vehicles()); - } - } - - @SuppressWarnings("unchecked") - private static class VehicleContentProvider extends AbstractTreeItemContentProvider - { - public VehicleContentProvider(Vehicle item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) { - super(item, contentAndLabelProvider); - } - - @Override - public Vehicle getModel() { - return (Vehicle) super.getModel(); - } - - @Override - public Object getParent() { - return getModel().parent(); - } - - @Override - protected CollectionValueModel buildChildrenModel() { - return new NullCollectionValueModel(); - } - } - - - private static class VehicleLabelProviderFactory - implements ItemLabelProviderFactory - { - public ItemLabelProvider buildItemLabelProvider(Object element, DelegatingContentAndLabelProvider labelProvider) { - return new VehicleLabelProvider((Vehicle) element, labelProvider); - } - } - - - private static class VehicleLabelProvider extends AbstractItemLabelProvider - { - public VehicleLabelProvider(Vehicle vehicle, DelegatingContentAndLabelProvider labelProvider) { - super(vehicle, labelProvider); - } - - @Override - protected PropertyValueModel<Image> buildImageModel() { - return new PropertyAspectAdapter<Vehicle, Image>( - new StaticPropertyValueModel<Vehicle>((Vehicle) getModel()), - Vehicle.COLOR_PROPERTY, Vehicle.GREYED_PROPERTY, Vehicle.TRANSLUCENT_PROPERTY) { - @Override - protected Image buildValue_() { - return subject.image(); - } - }; - } - - @Override - protected PropertyValueModel<String> buildTextModel() { - return new PropertyAspectAdapter<Vehicle, String>( - new StaticPropertyValueModel<Vehicle>((Vehicle) getModel()), - Vehicle.VEHICLE_TYPE_PROPERTY, Vehicle.COLOR_PROPERTY) { - @Override - protected String buildValue_() { - return subject.color().description() + ' ' + subject.vehicleType().description(); - } - }; - } - - @Override - protected PropertyValueModel<String> buildDescriptionModel() { - return buildTextModel(); - } - } - - - private static abstract class TreeNode extends AbstractModel - { - private TreeNode parent; - - - public TreeNode(TreeNode parent) { - this.parent = parent; - } - - - public TreeNode parent() { - return parent; - } - } - - - private static class Root extends TreeNode - { - protected final Vehicle[] vehicles; - - - public Root() { - super(null); - vehicles = new Vehicle[] { - new Vehicle(this, VehicleType.BICYCLE, Color.BLUE), - new Vehicle(this, VehicleType.CAR, Color.YELLOW), - new Vehicle(this, VehicleType.TRUCK, Color.RED), - new Vehicle(this, VehicleType.BOAT, Color.GREEN)}; - } - - public Vehicle[] vehicles() { - return vehicles; - } - } - - - private static class Vehicle extends TreeNode - { - private VehicleType vehicleType; - public final static String VEHICLE_TYPE_PROPERTY = "vehicleType"; - - private Color color; - public final static String COLOR_PROPERTY = "color"; - - private boolean greyed = false; - public final static String GREYED_PROPERTY = "greyed"; - - private boolean translucent = false; - public final static String TRANSLUCENT_PROPERTY = "translucent"; - - private Image image; - - - public Vehicle(TreeNode parent, VehicleType vehicleType, Color color) { - super(parent); - this.vehicleType = vehicleType; - this.color = color; - } - - public VehicleType vehicleType() { - return vehicleType; - } - - public void setVehicleType(VehicleType newVehicleType) { - VehicleType oldVehicleType = vehicleType; - vehicleType = newVehicleType; - firePropertyChanged(VEHICLE_TYPE_PROPERTY, oldVehicleType, newVehicleType); - } - - public Color color() { - return color; - } - - public void setColor(Color newColor) { - Color oldColor = color; - color = newColor; - firePropertyChanged(COLOR_PROPERTY, oldColor, newColor); - } - - public boolean isGreyed() { - return greyed; - } - - public void setGreyed(boolean newGreyed) { - boolean oldGreyed = greyed; - greyed = newGreyed; - firePropertyChanged(GREYED_PROPERTY, oldGreyed, newGreyed); - } - - public boolean isTranslucent() { - return translucent; - } - - public void setTranslucent(boolean newTranslucent) { - boolean oldTranslucent = translucent; - translucent = newTranslucent; - firePropertyChanged(TRANSLUCENT_PROPERTY, oldTranslucent, newTranslucent); - } - - public Image image() { - if (image != null) { - image.dispose(); - } - - return ImageFactory.image(color(), greyed, translucent); - } - } - - - private static enum VehicleType - { - BICYCLE("bicycle"), - CAR("car"), - TRUCK("truck"), - BOAT("boat"); - - private final String description; - - private VehicleType(String description) { - this.description = description; - } - - public String description() { - return description; - } - - @Override - public String toString() { - return description(); - } - } - - - private static enum Color - { - RED("red", new RGB(255, 0, 0)), - BLUE("blue", new RGB(0, 0, 255)), - YELLOW("yellow", new RGB(255, 255, 0)), - GREEN("green", new RGB(0, 255, 0)); - - private final String description; - - private final RGB rgb; - - private Color(String description, RGB rgb) { - this.description = description; - this.rgb = rgb; - } - - public String description() { - return description; - } - - public RGB rgb() { - return rgb; - } - - @Override - public String toString() { - return description(); - } - } - - - private static class ImageFactory - { - private static RGB rgb(Color color, boolean greyed, boolean translucent) { - RGB rgb = (greyed) ? new RGB(127, 127, 127) : color.rgb(); - if (translucent) { - rgb = new RGB(translucify(rgb.red), translucify(rgb.green), translucify(rgb.blue)); - } - return rgb; - } - - private static int translucify(int color) { - return 255 - (int) ((255 - color) * 0.3); - } - - public static Image image(Color color, boolean greyed, boolean translucent) { - PaletteData pd = new PaletteData(new RGB[] {rgb(color, greyed, translucent)}); - ImageData id = new ImageData(20, 20, 1, pd); - for (int x = 0; x < 20; x ++) { - for (int y = 0; y < 20; y ++) { - id.setPixel(x, y, 0); - } - } - return new Image(Display.getCurrent(), id); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java deleted file mode 100644 index 00af4be8e7..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java +++ /dev/null @@ -1,563 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.jface; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.BaseLabelProvider; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.jface.AbstractTreeItemContentProvider; -import org.eclipse.jpt.common.ui.internal.jface.DelegatingTreeContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.NotNullFilter; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CompositeCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.ListCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -@SuppressWarnings("nls") -public class DelegatingTreeContentProviderUiTest extends ApplicationWindow -{ - private final Root root; - - private WritablePropertyValueModel<TreeNode> selectedNode; - - private TreeViewer controlTree; - - private TreeViewer viewTree; - - private Text nodeNameText; - - - public static void main(String[] args) { - Window window = new DelegatingTreeContentProviderUiTest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private DelegatingTreeContentProviderUiTest(String[] args) { - super(null); - this.root = new Root(); - this.root.addChild("Parent_1"); - this.selectedNode = new SimplePropertyValueModel<TreeNode>(this.root); - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(800, 400); - parent.setLayout(new GridLayout()); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH)); - mainPanel.setLayout(new GridLayout()); - buildTreePanel(mainPanel); - buildControlPanel(mainPanel); - return mainPanel; - } - - private void buildTreePanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL_BOTH)); - panel.setLayout(new GridLayout(2, true)); - buildControlTreePanel(panel); - buildViewTreePanel(panel); - } - - private void buildControlTreePanel(Composite parent) { - controlTree = buildTreePanel( - parent, "Control tree", - new DelegatingTreeContentAndLabelProvider(new ControlTreeItemContentProviderFactory()), - new LabelProvider()); - controlTree.addSelectionChangedListener(buildTreeSelectionChangedListener()); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - controlTree.setSelection(new StructuredSelection(event.getNewValue())); - } - } - ); - } - - private void buildViewTreePanel(Composite parent) { - viewTree = buildTreePanel( - parent, "View tree", - new DelegatingTreeContentAndLabelProvider(new ViewTreeItemContentProviderFactory()), - new LabelProvider()); - } - - private TreeViewer buildTreePanel(Composite parent, String labelText, ITreeContentProvider contentProvider, ILabelProvider labelProvider) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL_BOTH)); - panel.setLayout(new GridLayout()); - - Label label = new Label(panel, SWT.LEFT); - label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); - label.setText(labelText); - - final TreeViewer tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); - tree.setContentProvider(contentProvider); - tree.setLabelProvider(labelProvider); - tree.setInput(root); - - return tree; - } - - private ISelectionChangedListener buildTreeSelectionChangedListener() { - return new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - TreeNode selection = (TreeNode) ((IStructuredSelection) event.getSelection()).getFirstElement(); - selectedNode.setValue((selection == null) ? root : selection); - } - }; - } - - private void buildControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); - panel.setLayout(new GridLayout(6, false)); - buildNodeNameText(panel); - buildAddChildACI().fill(panel); - buildAddNestedChildACI().fill(panel); - buildRemoveACI().fill(panel); - buildClearModelACI().fill(panel); - buildRestoreModelACI().fill(panel); - } - - private void buildNodeNameText(Composite parent) { - nodeNameText = new Text(parent, SWT.SINGLE | SWT.BORDER); - nodeNameText.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - } - - private ActionContributionItem buildAddChildACI() { - final Action action = new Action("Add child", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - addChild(); - } - }; - action.setToolTipText("Add a child with the given name"); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - action.setEnabled(((TreeNode) event.getNewValue()).canHaveChildren()); - } - } - ); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildAddNestedChildACI() { - final Action action = new Action("Add nested child", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - addNestedChild(); - } - }; - action.setToolTipText("Add a nested child with the given name"); - action.setEnabled(false); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - action.setEnabled(((TreeNode) event.getNewValue()).canHaveNestedChildren()); - } - } - ); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRemoveACI() { - final Action action = new Action("Remove", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - remove(); - } - }; - action.setToolTipText("Remove the selected node"); - action.setEnabled(false); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - action.setEnabled(event.getNewValue() != root); - } - } - ); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("Clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - clearModel(); - } - }; - action.setToolTipText("Clear the model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("Restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - restoreModel(); - } - }; - action.setToolTipText("Restore the model"); - return new ActionContributionItem(action); - } - - void addChild() { - String nodeName = nodeNameText.getText(); - if (nodeName.length() != 0) { - selectedNode.getValue().addChild(nodeName); - } - } - - void addNestedChild() { - String nodeName = nodeNameText.getText(); - if (nodeName.length() != 0) { - selectedNode.getValue().addNestedChild(nodeName); - } - } - - void remove() { - TreeNode node = selectedNode.getValue(); - node.parent().removeChild(node); - } - - void clearModel() { - controlTree.setInput(null); - viewTree.setInput(null); - } - - void restoreModel() { - controlTree.setInput(root); - viewTree.setInput(root); - } - - - static abstract class AbstractTreeItemContentProviderFactory - implements TreeItemContentProviderFactory - { - public TreeItemContentProvider buildItemContentProvider( - Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) { - return new GenericTreeItemContentProvider( - (TreeNode) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - } - - - static class ControlTreeItemContentProviderFactory extends AbstractTreeItemContentProviderFactory - { - - } - - - static class ViewTreeItemContentProviderFactory - extends AbstractTreeItemContentProviderFactory - { - @Override - public TreeItemContentProvider buildItemContentProvider( - Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) { - if (item instanceof Parent) { - return new ViewTreeParentItemContentProvider( - (Parent) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - return super.buildItemContentProvider(item, contentAndLabelProvider); - } - } - - - static class GenericTreeItemContentProvider extends AbstractTreeItemContentProvider<TreeNode> - { - public GenericTreeItemContentProvider( - TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) { - super(treeNode, treeContentAndLabelProvider); - } - - protected TreeNode treeNode() { - return (TreeNode) getModel(); - } - - @Override - public TreeNode getParent() { - return treeNode().parent(); - } - - @Override - protected CollectionValueModel<TreeNode> buildChildrenModel() { - return new ListCollectionValueModelAdapter<TreeNode>( - new ListAspectAdapter<TreeNode, TreeNode>(TreeNode.CHILDREN_LIST, treeNode()) { - @Override - protected ListIterator<TreeNode> listIterator_() { - return treeNode().children(); - } - }); - } - } - - static class ViewTreeParentItemContentProvider extends GenericTreeItemContentProvider - { - public ViewTreeParentItemContentProvider( - TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) { - super(treeNode, treeContentAndLabelProvider); - } - - @Override - public TreeNode getParent() { - TreeNode parent = super.getParent(); - if (parent instanceof Nest) { - parent = parent.parent(); - } - return parent; - } - - @Override - protected CollectionValueModel<TreeNode> buildChildrenModel() { - return new CompositeCollectionValueModel<TreeNode, TreeNode>(super.buildChildrenModel()) { - @Override - protected CollectionValueModel<TreeNode> transform(TreeNode value) { - if (value instanceof Nest) { - final Nest nest = (Nest) value; - return new ListCollectionValueModelAdapter<TreeNode>( - new ListAspectAdapter<TreeNode, TreeNode>(TreeNode.CHILDREN_LIST, nest) { - @Override - protected ListIterator<TreeNode> listIterator_() { - return nest.children(); - } - } - ); - } - return new StaticCollectionValueModel<TreeNode>(CollectionTools.collection(value)); - } - }; - } - } - - - static class LabelProvider extends BaseLabelProvider - implements ILabelProvider - { - public Image getImage(Object element) { - return null; - } - - public String getText(Object element) { - return ((TreeNode) element).getName(); - } - } - - - static abstract class TreeNode extends AbstractModel - { - private TreeNode parent; - - protected final List<TreeNode> children; - public final static String CHILDREN_LIST = "children"; - - protected String name; - public final static String NAME_PROPERTY = "name"; - - - public TreeNode(TreeNode parent, String name) { - this.parent = parent; - this.children = new ArrayList<TreeNode>(); - this.name = name; - } - - public TreeNode parent() { - return parent; - } - - public ListIterator<TreeNode> children() { - return new ReadOnlyListIterator<TreeNode>(children); - } - - protected void addChild(TreeNode child) { - addItemToList(child, children, CHILDREN_LIST); - } - - public void removeChild(TreeNode child) { - removeItemFromList(child, children, CHILDREN_LIST); - } - - public void removeChild(int index) { - removeItemFromList(index, children, CHILDREN_LIST); - } - - public String getName() { - return name; - } - - public void setName(String newName) { - String oldName = name; - name = newName; - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public boolean canHaveChildren() { - return false; - } - - public void addChild(String name) { - throw new UnsupportedOperationException(); - } - - public boolean canHaveNestedChildren() { - return false; - } - - public void addNestedChild(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(getName()); - } - } - - - static class Root extends TreeNode - { - public Root() { - super(null, null); - } - - @Override - public boolean canHaveChildren() { - return true; - } - - @Override - public void addChild(String name) { - addChild(new Parent(this, name)); - } - } - - - static class Parent extends TreeNode - { - public Parent(TreeNode parent, String name) { - super(parent, name); - } - - @Override - public boolean canHaveChildren() { - return true; - } - - @Override - public void addChild(String name) { - addChild(new Child(this, name)); - } - - @Override - public boolean canHaveNestedChildren() { - return true; - } - - @Override - public void addNestedChild(String name) { - TreeNode nest = new Nest(this); - addChild(nest); - nest.addChild(name); - } - - public Iterator<Child> nestlessChildren() { - return new FilteringIterator<Child>( - new TransformationIterator<TreeNode, Child>(children()) { - @Override - protected Child transform(TreeNode next) { - if (next instanceof Nest) { - return ((Nest) next).child(); - } - return (Child) next; - } - }, - NotNullFilter.<Child>instance() - ); - } - } - - - static class Nest extends TreeNode - { - public Nest(TreeNode parent) { - super(parent, "nest"); - } - - @Override - public boolean canHaveChildren() { - return children.size() == 0; - } - - @Override - public void addChild(String name) { - addChild(new Child(this, name)); - } - - /* can only have one child */ - public Child child() { - return (children.isEmpty()) ? null : (Child) children.get(0); - } - } - - - static class Child extends TreeNode - { - public Child(TreeNode parent, String name) { - super(parent, name); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java deleted file mode 100644 index d987d9e3eb..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java +++ /dev/null @@ -1,777 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeEvent; -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeListener; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.swing.SimpleDisplayable; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public abstract class AbstractComboModelAdapterTest { - - private Model model; - private WritablePropertyValueModel<SimpleDisplayable> selectedItemHolder; - private Shell shell; - private WritablePropertyValueModel<Model> subjectHolder; - - protected abstract AbstractComboModelAdapter<SimpleDisplayable> buildEditableComboModelAdapter(); - - protected final ListValueModel<SimpleDisplayable> buildEmptyListHolder() { - return new SimpleListValueModel<SimpleDisplayable>(); - } - - private List<SimpleDisplayable> buildList() { - List<SimpleDisplayable> list = new ArrayList<SimpleDisplayable>(); - populateCollection(list); - return list; - } - - protected final ListValueModel<SimpleDisplayable> buildListHolder() { - return new ListAspectAdapter<Model, SimpleDisplayable>(subjectHolder, Model.ITEMS_LIST) { - @Override - protected ListIterator<SimpleDisplayable> listIterator_() { - return subject.items(); - } - - @Override - protected int size_() { - return subject.itemsSize(); - } - }; - } - - protected abstract AbstractComboModelAdapter<SimpleDisplayable> buildReadOnlyComboModelAdapter(); - - private SimpleDisplayable buildSelectedItem() { - return new SimpleDisplayable("baz"); - } - - private WritablePropertyValueModel<SimpleDisplayable> buildSelectedItemHolder() { - return new PropertyAspectAdapter<Model, SimpleDisplayable>(subjectHolder, Model.ITEM_PROPERTY) { - @Override - protected SimpleDisplayable buildValue_() { - return subject.getItem(); - } - - @Override - protected void setValue_(SimpleDisplayable value) { - subject.setItem(value); - } - }; - } - - protected final StringConverter<SimpleDisplayable> buildStringConverter() { - return new StringConverter<SimpleDisplayable>() { - public String convertToString(SimpleDisplayable value) { - return (value == null) ? "" : value.displayString(); - } - }; - } - - private WritablePropertyValueModel<Model> buildSubjectHolder() { - return new SimplePropertyValueModel<Model>(); - } - - public abstract String comboSelectedItem(); - - protected abstract boolean emptyComboCanHaveSelectedValue(); - - protected abstract String itemAt(int index); - - protected abstract int itemCounts(); - - private void populateCollection(Collection<SimpleDisplayable> c) { - c.add(new SimpleDisplayable("foo")); - c.add(new SimpleDisplayable("bar")); - c.add(new SimpleDisplayable("baz")); - c.add(new SimpleDisplayable("joo")); - c.add(new SimpleDisplayable("jar")); - c.add(new SimpleDisplayable("jaz")); - } - - protected final WritablePropertyValueModel<SimpleDisplayable> selectedItemHolder() { - return selectedItemHolder; - } - - @Before - public void setUp() throws Exception { - - shell = new Shell(Display.getCurrent()); - model = new Model(); - subjectHolder = buildSubjectHolder(); - selectedItemHolder = buildSelectedItemHolder(); - } - - protected final Shell shell() { - return shell; - } - - protected final WritablePropertyValueModel<Model> subjectHolder() { - return subjectHolder; - } - - @After - public void tearDown() throws Exception { - - if (!shell.isDisposed()) { - shell.dispose(); - } - - shell = null; - subjectHolder = null; - selectedItemHolder = null; - } - - private void testItems() { - - assertEquals( - "The count of items is not in sync with the model", - model.itemsSize(), - itemCounts() - ); - - for (int index = 0; index < model.itemsSize(); index++) { - assertEquals( - "The item at index " + index + " is not the same between the model and the combo", - model.itemAt(index).displayString(), - itemAt(index) - ); - } - } - - @Test - public void testNonNullSubjectAfter_AddedAfter_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - testRemoveItems_AddedAfter(); - } - - @Test - public void testNonNullSubjectAfter_AddedAfter_RemoveItems_Editable() throws Exception { - - buildEditableComboModelAdapter(); - testRemoveItems_AddedAfter(); - } - - @Test - public void testNonNullSubjectAfter_AddedBefore_RemoveItems_Editable() throws Exception { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - buildEditableComboModelAdapter(); - testSelectedItem(null); - testItems(); - - ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>(); - items.add(model.itemAt(0)); - items.add(model.itemAt(3)); - model.removeItems(items.iterator()); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_AddedBefore_RemoveItems_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - buildReadOnlyComboModelAdapter(); - testSelectedItem(null); - testItems(); - - ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>(); - items.add(model.itemAt(0)); - items.add(model.itemAt(3)); - model.removeItems(items.iterator()); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_Editable() throws Exception { - - buildEditableComboModelAdapter(); - - subjectHolder.setValue(model); - model.addItems(buildList()); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - - subjectHolder.setValue(model); - model.addItems(buildList()); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_Editable() throws Exception { - - buildEditableComboModelAdapter(); - - model.addItems(buildList()); - subjectHolder.setValue(model); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - - model.addItems(buildList()); - subjectHolder.setValue(model); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_Editable() throws Exception { - - model.addItems(buildList()); - buildEditableComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_ReadOnly() throws Exception { - - model.addItems(buildList()); - buildReadOnlyComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_NoItems_Editable() throws Exception { - - buildEditableComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_NoItems_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_SelectedItemChanged_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - SimpleDisplayable selectedItem = model.itemAt(0); - - AbstractComboModelAdapter<SimpleDisplayable> adapter = buildEditableComboModelAdapter(); - SelectionListener selectionListener = new SelectionListener(); - adapter.addSelectionChangeListener(selectionListener); - - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - testSelectedItem(null); - - testSelectedItemChanged(selectedItem, selectionListener); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Editable() throws Exception { - - SimpleDisplayable selectedItem = buildSelectedItem(); - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_Editable() throws Exception { - - SimpleDisplayable selectedItem = buildSelectedItem(); - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_ReadOnly() throws Exception { - - List<SimpleDisplayable> list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_ReadOnly() throws Exception { - - List<SimpleDisplayable> list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Editable() throws Exception { - - model.addItems(buildList()); - SimpleDisplayable selectedItem = model.itemAt(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_Editable() throws Exception { - - model.addItems(buildList()); - SimpleDisplayable selectedItem = model.itemAt(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_ReadOnly() throws Exception { - - List<SimpleDisplayable> list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_ReadOnly() throws Exception { - - List<SimpleDisplayable> list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_Items_Editable() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_Items_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_NoItems_Editable() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_NoItems_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_SelectedItemChanged_Editable() throws Exception { - - model.addItems(buildList()); - - SimpleDisplayable selectedItem = model.itemAt(3); - subjectHolder.setValue(model); - - AbstractComboModelAdapter<SimpleDisplayable> adapter = buildEditableComboModelAdapter(); - SelectionListener selectionListener = new SelectionListener(); - adapter.addSelectionChangeListener(selectionListener); - - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - testSelectedItem(null); - - testSelectedItemChanged(selectedItem, selectionListener); - } - - private void testNullSubject() throws Exception { - - assertNull("The selected item should be null", selectedItemHolder.getValue()); - - selectedItemHolder.setValue(buildSelectedItem()); - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - - // Null because the subject holder doesn't have the subject set - testSelectedItem(null); - testItems(); - } - - @Test - public void testNullSubject_NullSelectedItem_Items_Editable() throws Exception { - buildEditableComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - @Test - public void testNullSubject_NullSelectedItem_Items_ReadOnly() throws Exception { - buildReadOnlyComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - @Test - public void testNullSubject_NullSelectedItem_NoItems_Editable() throws Exception { - buildEditableComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - @Test - public void testNullSubject_NullSelectedItem_NoItems_ReadOnly() throws Exception { - buildReadOnlyComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - private void testRemoveItems_AddedAfter() { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - testSelectedItem(null); - testItems(); - testSelectedItem(null); - - ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>(); - items.add(model.itemAt(0)); - items.add(model.itemAt(3)); - model.removeItems(items.iterator()); - - testItems(); - testSelectedItem(null); - } - - private void testSelectedItem(SimpleDisplayable selectedItem) { - - if (selectedItem == null) { - - assertNull( - "The selected item is supposed to be null", - model.getItem() - ); - - assertEquals( - "The combo's selected item should be null", - "", - comboSelectedItem() - ); - } - else if (!emptyComboCanHaveSelectedValue()) { - - assertEquals( - "The selected item wasn't set correctly", - selectedItem, - model.getItem() - ); - - assertEquals( - "The combo's selected item should be null", - "", - comboSelectedItem() - ); - } - else { - - assertEquals( - "The selected item wasn't set correctly", - selectedItem, - model.getItem() - ); - - assertEquals( - "The selected item wasn't set correctly", - selectedItem.displayString(), - comboSelectedItem() - ); - } - } - - private void testSelectedItemChanged(SimpleDisplayable selectedItem, - SelectionListener selectionListener) { - - // Test 1 - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - - // Test 2 - selectedItem = model.itemAt(1); - model.clearItemCalledFlag(); - selectionListener.clearInfo(); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - - // Test 3 - selectedItem = null; - model.clearItemCalledFlag(); - selectionListener.clearInfo(); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item wasn't set properly", model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - - // Test 3 - selectedItem = model.itemAt(2); - model.clearItemCalledFlag(); - selectionListener.clearInfo(); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - } - - private static class Model extends AbstractModel { - - private SimpleDisplayable item; - private List<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>(); - private boolean setItemCalled; - - static final String ITEM_PROPERTY = "item"; - static final String ITEMS_LIST = "items"; - - void addItems(Iterator<SimpleDisplayable> items) { - addItemsToList(items, this.items, ITEMS_LIST); - } - - void addItems(List<SimpleDisplayable> items) { - addItemsToList(items, this.items, ITEMS_LIST); - } - - void clearItemCalledFlag() { - setItemCalled = false; - } - - SimpleDisplayable getItem() { - return item; - } - - boolean isSetItemCalled() { - return setItemCalled; - } - - SimpleDisplayable itemAt(int index) { - return this.items.get(index); - } - - ListIterator<SimpleDisplayable> items() { - return items.listIterator(); - } - - int itemsSize() { - return items.size(); - } - - void removeItems(Iterator<SimpleDisplayable> items) { - removeItemsFromList(items, this.items, ITEMS_LIST); - } - - void setItem(SimpleDisplayable item) { - setItemCalled = true; - - SimpleDisplayable oldItem = this.item; - this.item = item; - firePropertyChanged(ITEM_PROPERTY, oldItem, item); - } - } - - private class SelectionListener implements SelectionChangeListener<SimpleDisplayable> { - - private SimpleDisplayable item; - private boolean listenerNotified; - - void clearInfo() { - this.listenerNotified = false; - this.item = null; - } - - SimpleDisplayable getItem() { - return item; - } - - public boolean isListenerNotified() { - return listenerNotified; - } - - public void selectionChanged(SelectionChangeEvent<SimpleDisplayable> e) { - listenerNotified = true; - item = e.selectedItem(); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java deleted file mode 100644 index f2379318d9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.ComboModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.SimpleDisplayable; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Combo; -import org.junit.After; - -public class ComboModelAdapterTest extends AbstractComboModelAdapterTest { - - private Combo combo; - private boolean editable; - - @Override - protected AbstractComboModelAdapter<SimpleDisplayable> buildEditableComboModelAdapter() { - - combo = new Combo(shell(), SWT.NULL); - editable = true; - - return ComboModelAdapter.adapt( - buildListHolder(), - selectedItemHolder(), - combo, - buildStringConverter() - ); - } - - @Override - protected AbstractComboModelAdapter<SimpleDisplayable> buildReadOnlyComboModelAdapter() { - - combo = new Combo(shell(), SWT.READ_ONLY); - editable = false; - - return ComboModelAdapter.adapt( - buildListHolder(), - selectedItemHolder(), - combo, - buildStringConverter() - ); - } - - @Override - public String comboSelectedItem() { - return combo.getText(); - } - - @Override - protected boolean emptyComboCanHaveSelectedValue() { - return editable; - } - - @Override - protected String itemAt(int index) { - return this.combo.getItem(index); - } - - @Override - protected int itemCounts() { - return combo.getItemCount(); - } - - @After - @Override - public void tearDown() throws Exception { - super.tearDown(); - combo = null; - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java deleted file mode 100644 index fb7f5d3d61..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import junit.framework.JUnit4TestAdapter; -import junit.framework.Test; -import junit.framework.TestSuite; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@SuiteClasses -({ - ComboModelAdapterTest.class, - SpinnerModelAdapterTest.class, - TableModelAdapterTest.class -}) -@RunWith(Suite.class) -public final class JptUiSWTTests { - - private JptUiSWTTests() { - super(); - throw new UnsupportedOperationException(); - } - - public static Test suite() { - TestSuite suite = new TestSuite(); - suite.addTest(new JUnit4TestAdapter(JptUiSWTTests.class)); - return suite; - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java deleted file mode 100644 index f8792a4e5f..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java +++ /dev/null @@ -1,342 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import org.eclipse.jpt.common.ui.internal.swt.SpinnerModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Spinner; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public class SpinnerModelAdapterTest { - - private Model model; - private Shell shell; - private WritablePropertyValueModel<Model> subjectHolder; - - private WritablePropertyValueModel<Model> buildSubjectHolder() { - return new SimplePropertyValueModel<Model>(); - } - - private WritablePropertyValueModel<Integer> buildValueHolder() { - return new PropertyAspectAdapter<Model, Integer>(subjectHolder, Model.VALUE_PROPERTY) { - @Override - protected Integer buildValue_() { - return subject.getValue(); - } - - @Override - protected void setValue_(Integer value) { - subject.setValue(value); - } - }; - } - - @Before - public void setUp() throws Exception { - - shell = new Shell(Display.getCurrent()); - model = new Model(); - subjectHolder = buildSubjectHolder(); - } - - @After - public void tearDown() throws Exception { - - if (!shell.isDisposed()) { - shell.dispose(); - } - - shell = null; - subjectHolder = null; - } - - @Test - public void testDisposed() { - - int value = 2; - model.setValue(value); - model.clearSetValueCalledFlag(); - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel<Integer> numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The number holder's value should be the model's value", - model.getValue(), - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - - // Change the value in the model - spinner.dispose(); - - value = 4; - model.setValue(value); - - assertEquals( - "The model's value was somehow changed", - Integer.valueOf(value), - model.getValue() - ); - } - - @Test - public void testInitialization_1() { - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel<Integer> numberHolder = new SimplePropertyValueModel<Integer>(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - - assertNull( - "The number holder's value should be null", - numberHolder.getValue() - ); - } - - @Test - public void testInitialization_2() { - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel<Integer> numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - - assertNull( - "The number holder's value should be null", - numberHolder.getValue() - ); - } - - @Test - public void testInitialization_3() { - - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel<Integer> numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - - assertNull( - "The number holder's value should be null", - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - } - - @Test - public void testInitialization_4() { - - int value = 2; - model.setValue(value); - model.clearSetValueCalledFlag(); - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel<Integer> numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the value coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The number holder's value should be " + value, - Integer.valueOf(value), - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - } - - @Test - public void testValueChanged() { - - int value = 2; - model.setValue(value); - model.clearSetValueCalledFlag(); - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel<Integer> numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The number holder's value should be the model's value", - model.getValue(), - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - - // Change the value in the model - value = 4; - model.setValue(value); - - assertEquals( - "The spinner's value should be coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The model's value was somehow changed", - Integer.valueOf(value), - model.getValue() - ); - - // Change the value from the spinner - value = 6; - spinner.setSelection(value); - - assertEquals( - "The spinner's value should be the new value set", - value, - spinner.getSelection() - ); - - assertEquals( - "The model's value was supposed to be updated", - Integer.valueOf(value), - model.getValue() - ); - - // Disconnect from model - subjectHolder.setValue(null); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - } - - private static class Model extends AbstractModel { - - private boolean setValueCalled; - private Integer value; - - static final String VALUE_PROPERTY = "value"; - - void clearSetValueCalledFlag() { - setValueCalled = false; - } - - Integer getValue() { - return value; - } - - boolean isSetValueCalled() { - return setValueCalled; - } - - void setValue(Integer value) { - setValueCalled = true; - - Integer oldValue = this.value; - this.value = value; - firePropertyChanged(VALUE_PROPERTY, oldValue, value); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java deleted file mode 100644 index f8e6dd04a9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java +++ /dev/null @@ -1,1201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jpt.common.ui.internal.swt.ColumnAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeEvent; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeListener; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableItem; -import org.junit.After; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public class TableModelAdapterTest { - - private Shell shell; - private WritablePropertyValueModel<Manager> subjectHolder; - - private ColumnAdapter<Employee> buildColumnAdapter() { - return new TableColumnAdapter(); - } - - private WritablePropertyValueModel<Employee> buildEmployeeHolder() { - return new SimplePropertyValueModel<Employee>(); - } - - private SimpleCollectionValueModel<Employee> buildEmployeeHolders() { - return new SimpleCollectionValueModel<Employee>(); - } - - private ListValueModel<Employee> buildEmployeeListHolder() { - return new ListAspectAdapter<Manager, Employee>(subjectHolder, Manager.EMPLOYEES_LIST) { - @Override - protected ListIterator<Employee> listIterator_() { - return subject.employees(); - } - - @Override - protected int size_() { - return subject.employeesSize(); - } - }; - } - - private ITableLabelProvider buildLabelProvider() { - return new TableLabelProvider(); - } - - private SelectionChangeListener<Employee> buildSelectionChangeListener(final Collection<Employee> employees) { - return new SelectionChangeListener<Employee>() { - public void selectionChanged(SelectionChangeEvent<Employee> e) { - employees.clear(); - CollectionTools.addAll(employees, e.selection()); - } - }; - } - - private WritablePropertyValueModel<Manager> buildSubjectHolder() { - return new SimplePropertyValueModel<Manager>(); - } - - @Before - public void setUp() throws Exception { - - shell = new Shell(Display.getCurrent()); - subjectHolder = buildSubjectHolder(); - } - - @After - public void tearDown() throws Exception { - - if (!shell.isDisposed()) { - shell.dispose(); - } - - shell = null; - subjectHolder = null; - } - - @Test - public void testChanged() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Make sure the Table was populated - Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount()); - - // Change the list of Employees - ArrayList<Employee> employees = new ArrayList<Employee>(3); - employees.add(employee3); - employees.add(employee2); - employees.add(employee1); - manager.changeEmployees(employees); - - Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount()); - - testTableItemProperties(table, 0, expectedName3, expectedManager3, expectedTitle3); - testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, 2, expectedName1, expectedManager1, expectedTitle1); - } - - @Test - public void testCleared() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Make sure the Table was populated - Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount()); - - // Test removing them all - manager.removeAllEmployees(); - - Assert.assertEquals("The list holder should have been cleared", 0, listHolder.size()); - Assert.assertEquals("The Table should have been cleared", 0, table.getItemCount()); - } - - @Test - public void testItemAdded() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName = "Dali"; - String expectedManager = "WTP"; - String expectedTitle = "plug-in"; - - Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager); - Assert.assertNotNull("The new Employee was not created", employee); - - // Retrieve the TableItem representing the new Employee - int index = tableModel.indexOf(employee); - Assert.assertEquals("The new Employee was not added to the table model", 0, index); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle); - } - - @Test - public void testItemMoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Make sure the Employees were added to the Table - Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount()); - - // Move an Employee up the list - manager.moveEmployeeUp(employee2); - - int index1 = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 was not moved in the table model", 1, index1); - - int index2 = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2); - - int index3 = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 should not have been moved in the table model", 2, index3); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - - // Move an Employee down the list - manager.moveEmployeeDown(employee1); - - index1 = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 should not have been moved in the table model", 2, index1); - - index2 = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2); - - index3 = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 was not moved in the table model", 1, index3); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - } - - @Test - public void testItemRemoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName = "Dali"; - String expectedManager = "WTP"; - String expectedTitle = "plug-in"; - - Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager); - Assert.assertNotNull("The new Employee was not created", employee); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - // Make sure it was added to the model - int index = tableModel.indexOf(employee); - Assert.assertEquals("The new Employee was not added to the table model", 0, index); - testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle); - - // Retrieve the TableItem representing the new Employee - TableItem tableItem = table.getItem(index); - Assert.assertNotNull("No TableItem was found for the new Employee", tableItem); - - // Now test the item being removed - manager.removeEmployee(employee); - index = tableModel.indexOf(employee); - Assert.assertEquals("The Employee was not removed from the table model", -1, index); - Assert.assertEquals("The number of TableItem should be 0", 0, table.getItemCount()); - } - - @Test - public void testItemReplaced() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - Employee employee1 = manager.addEmployee(expectedName1, expectedTitle1, expectedManager1); - Assert.assertNotNull("The new Employee was not created", employee1); - - // Make sure it was added to the model - int index1 = tableModel.indexOf(employee1); - Assert.assertEquals("The new Employee was not added to the table model", 0, index1); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - // Retrieve the TableItem representing the new Employee - TableItem tableItem = table.getItem(index1); - Assert.assertNotNull("No TableItem was found for the new Employee", tableItem); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - - // Replace the Employee - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - manager.replace(employee1, employee2); - - int index2 = tableModel.indexOf(employee2); - Assert.assertSame("The Employee that got replaced should be at index " + index1, index1, index2); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - } - - @Test - public void testItemsAdded() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Retrieve the TableItems representing the employees - Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount()); - - int index = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 was not added to the table model", 0, index); - - index = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not added to the table model", 1, index); - - index = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 was not added to the table model", 2, index); - - // Make sure the TableItem was correctly populated - testTableItemProperties(table, 0, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, 2, expectedName3, expectedManager3, expectedTitle3); - } - - @Test - public void testItemsMoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - String expectedName4 = "Dali_4"; - String expectedManager4 = "WTP_4"; - String expectedTitle4 = "plug-in_4"; - - String expectedName5 = "Dali_5"; - String expectedManager5 = "WTP_5"; - String expectedTitle5 = "plug-in_5"; - - String expectedName6 = "Dali_6"; - String expectedManager6 = "WTP_6"; - String expectedTitle6 = "plug-in_6"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - Employee employee4 = new Employee(expectedName4, expectedTitle4, expectedManager4); - Employee employee5 = new Employee(expectedName5, expectedTitle5, expectedManager5); - Employee employee6 = new Employee(expectedName6, expectedTitle6, expectedManager6); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - manager.addEmployee(employee4); - manager.addEmployee(employee5); - manager.addEmployee(employee6); - - // Make sure the Employees were added to the Table - Assert.assertEquals("The number of TableItem should be 6", 6, table.getItemCount()); - - // Move an Employee up the list - ArrayList<Employee> employees = new ArrayList<Employee>(3); - employees.add(employee3); - employees.add(employee4); - employees.add(employee5); - manager.moveEmployees(employees, 0); - - int index1 = tableModel.indexOf(employee1); - int index2 = tableModel.indexOf(employee2); - int index3 = tableModel.indexOf(employee3); - int index4 = tableModel.indexOf(employee4); - int index5 = tableModel.indexOf(employee5); - int index6 = tableModel.indexOf(employee6); - - Assert.assertEquals("The Employee 1 is not at the right index", 3, index1); - Assert.assertEquals("The Employee 2 is not at the right index", 4, index2); - Assert.assertEquals("The Employee 3 is not at the right index", 0, index3); - Assert.assertEquals("The Employee 4 is not at the right index", 1, index4); - Assert.assertEquals("The Employee 5 is not at the right index", 2, index5); - Assert.assertEquals("The Employee 6 is not at the right index", 5, index6); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4); - testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5); - testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6); - - // Move an Employee down the list - employees = new ArrayList<Employee>(2); - employees.add(employee1); - employees.add(employee2); - manager.moveEmployees(employees, 4); - - index1 = tableModel.indexOf(employee1); - index2 = tableModel.indexOf(employee2); - index3 = tableModel.indexOf(employee3); - index4 = tableModel.indexOf(employee4); - index5 = tableModel.indexOf(employee5); - index6 = tableModel.indexOf(employee6); - - Assert.assertEquals("The Employee 1 is not at the right index", 4, index1); - Assert.assertEquals("The Employee 2 is not at the right index", 5, index2); - Assert.assertEquals("The Employee 3 is not at the right index", 0, index3); - Assert.assertEquals("The Employee 4 is not at the right index", 1, index4); - Assert.assertEquals("The Employee 5 is not at the right index", 2, index5); - Assert.assertEquals("The Employee 6 is not at the right index", 3, index6); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4); - testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5); - testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6); - } - - @Test - public void testItemsRemoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Retrieve the TableItems representing the employees - Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount()); - - int index = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 was not added to the table model", 0, index); - - index = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not added to the table model", 1, index); - - index = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 was not added to the table model", 2, index); - - // Remove 2 items - ArrayList<Employee> employees = new ArrayList<Employee>(2); - employees.add(employee1); - employees.add(employee3); - manager.removeEmployees(employees); - - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - } - - @Test - public void testPropertyChanged() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName = "Dali"; - String expectedManager = "WTP"; - String expectedTitle = "plug-in"; - - Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager); - Assert.assertNotNull("The new Employee was not created", employee); - - // Make sure it was added to the model - int index = tableModel.indexOf(employee); - Assert.assertEquals("The new Employee was not added to the table model", 0, index); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - // Retrieve the TableItem representing the new Employee - TableItem tableItem = table.getItem(index); - Assert.assertNotNull("No TableItem was found for the new Employee", tableItem); - - // Name property - String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN); - Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName); - - expectedName = "Jpt"; - employee.setName(expectedName); - - actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN); - Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName); - - // Manager property - String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN); - Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager); - - expectedManager = "boss"; - employee.setManager(expectedManager); - - actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN); - Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager); - - // Title property - String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN); - Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle); - - expectedTitle = "EclipseLink"; - employee.setTitle(expectedTitle); - - actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN); - Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle); - } - - @Test - public void testSelectedItemsAddedRemoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - SimpleCollectionValueModel<Employee> selectedItemsHolder = buildEmployeeHolders(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemsHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Test adding selected items - ArrayList<Employee> employees = new ArrayList<Employee>(2); - employees.add(employee1); - employees.add(employee3); - selectedItemsHolder.addAll(employees); - - Collection<Employee> actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size()); - - actualEmployees.remove(employee1); - actualEmployees.remove(employee3); - - Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty()); - - // Test removing selected items - selectedItemsHolder.remove(employee1); - - actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be 1", 1, actualEmployees.size()); - - actualEmployees.remove(employee3); - - Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty()); - } - - @Test - public void testSelectedItemsCleared() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel<Employee> listHolder = buildEmployeeListHolder(); - SimpleCollectionValueModel<Employee> selectedItemsHolder = buildEmployeeHolders(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemsHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Test adding selected items - ArrayList<Employee> employees = new ArrayList<Employee>(2); - employees.add(employee1); - employees.add(employee3); - selectedItemsHolder.addAll(employees); - - Collection<Employee> actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size()); - - actualEmployees.remove(employee1); - actualEmployees.remove(employee3); - Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty()); - - // Test removing selected items - selectedItemsHolder.clear(); - - actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be ", 0, actualEmployees.size()); - } - - @Test - public void testSelectionChangeListener() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - buildEmployeeListHolder(), - buildEmployeeHolder(), - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - Collection<Employee> employees = new ArrayList<Employee>(); - tableModel.addSelectionChangeListener(buildSelectionChangeListener(employees)); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Test adding selected items - table.setSelection(new int[] { 0, 2 }); - - // It seems a manual selection doesn't send any selection event - tableModel.tableSelectionChanged(null); - - Assert.assertNotNull("The collection of selected items can't be null", employees); - Assert.assertEquals("The count of selected items should be 2", 2, employees.size()); - - employees.remove(employee1); - employees.remove(employee3); - Assert.assertTrue("The selected items was not retrieved correctly", employees.isEmpty()); - - // Test adding selected items - employees.add(employee1); - employees.add(employee3); - table.deselectAll(); - - // It seems a manual selection doesn't send any selection event - tableModel.tableSelectionChanged(null); - - Assert.assertNotNull("The collection of selected items can't be null", employees); - Assert.assertEquals("The count of selected items should be 0", 0, employees.size()); - } - - private void testTableItemProperties(Table table, - int index, - String expectedName, - String expectedManager, - String expectedTitle) - { - TableItem tableItem = table.getItem(index); - Assert.assertNotNull("No TableItem was found for the Employee", tableItem); - - String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN); - Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName); - - String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN); - Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle); - - String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN); - Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager); - } - - private class Employee extends AbstractModel { - - private String manager; - private String name; - private String title; - - static final String MANAGER_PROPERTY = "manager"; - static final String NAME_PROPERTY = "name"; - static final String TITLE_PROPERTY = "title"; - - Employee(String name, String title, String manager) { - super(); - - this.name = name; - this.title = title; - this.manager = manager; - } - - String getManager() { - return manager; - } - - String getName() { - return name; - } - - String getTitle() { - return title; - } - - void setManager(String manager) { - String oldManager = this.manager; - this.manager = manager; - firePropertyChanged(MANAGER_PROPERTY, oldManager, manager); - } - - void setName(String name) { - String oldName = this.name; - this.name = name; - firePropertyChanged(NAME_PROPERTY, oldName, name); - } - - void setTitle(String title) { - String oldTitle = this.title; - this.title = title; - firePropertyChanged(TITLE_PROPERTY, oldTitle, title); - } - } - - private class Manager extends AbstractModel { - - private List<Employee> employees; - - static final String EMPLOYEES_LIST = "employees"; - - Manager() { - super(); - employees = new ArrayList<Employee>(); - } - - Employee addEmployee(Employee employee) { - addItemToList(employee, employees, EMPLOYEES_LIST); - return employee; - } - - Employee addEmployee(String name, String title, String manager) { - Employee employee = new Employee(name, title, manager); - return addEmployee(employee); - } - - void changeEmployees(List<Employee> newEmployees) { - this.synchronizeList(newEmployees, this.employees, EMPLOYEES_LIST); - } - - ListIterator<Employee> employees() { - return new CloneListIterator<Employee>(employees); - } - - int employeesSize() { - return employees.size(); - } - - void moveEmployeeDown(Employee employee) { - int index = employees.indexOf(employee); - moveItemInList(index + 1, index, employees, EMPLOYEES_LIST); - } - - void moveEmployees(Collection<Employee> employees, int targetIndex) { - - int sourceIndex = Integer.MAX_VALUE; - - for (Employee employee : employees) { - sourceIndex = Math.min(sourceIndex, this.employees.indexOf(employee)); - } - - moveItemsInList( - targetIndex, - sourceIndex, - employees.size(), - this.employees, - EMPLOYEES_LIST - ); - } - - void moveEmployeeUp(Employee employee) { - int index = employees.indexOf(employee); - moveItemInList(index - 1, index, employees, EMPLOYEES_LIST); - } - - void removeAllEmployees() { - clearList(employees, EMPLOYEES_LIST); - } - - void removeEmployee(Employee employee) { - removeItemFromList(employee, employees, EMPLOYEES_LIST); - } - - void removeEmployees(Collection<Employee> employees) { - removeItemsFromList(employees.iterator(), this.employees, EMPLOYEES_LIST); - } - - void replace(Employee oldEmployee, Employee newEmployee) { - replaceItemInList(oldEmployee, newEmployee, employees, EMPLOYEES_LIST); - } - } - - private class TableColumnAdapter implements ColumnAdapter<Employee> { - - static final int COLUMN_COUNT = 3; - static final int MANAGER_COLUMN = 2; - static final int NAME_COLUMN = 0; - static final int TITLE_COLUMN = 1; - - private WritablePropertyValueModel<String> buildManagerHolder(Employee subject) { - return new PropertyAspectAdapter<Employee, String>(Employee.MANAGER_PROPERTY, subject) { - @Override - protected String buildValue_() { - return subject.getManager(); - } - - @Override - protected void setValue_(String value) { - subject.setManager(value); - } - }; - } - - private WritablePropertyValueModel<String> buildNameHolder(Employee subject) { - return new PropertyAspectAdapter<Employee, String>(Employee.NAME_PROPERTY, subject) { - @Override - protected String buildValue_() { - return subject.getName(); - } - - @Override - protected void setValue_(String value) { - subject.setName(value); - } - }; - } - - private WritablePropertyValueModel<String> buildTitleHolder(Employee subject) { - return new PropertyAspectAdapter<Employee, String>(Employee.TITLE_PROPERTY, subject) { - @Override - protected String buildValue_() { - return subject.getTitle(); - } - - @Override - protected void setValue_(String value) { - subject.setTitle(value); - } - }; - } - - public WritablePropertyValueModel<?>[] cellModels(Employee subject) { - WritablePropertyValueModel<?>[] holders = new WritablePropertyValueModel<?>[3]; - holders[NAME_COLUMN] = buildNameHolder(subject); - holders[TITLE_COLUMN] = buildTitleHolder(subject); - holders[MANAGER_COLUMN] = buildManagerHolder(subject); - return holders; - } - - public int columnCount() { - return COLUMN_COUNT; - } - - public String columnName(int columnIndex) { - return String.valueOf(columnIndex); - } - } - - private class TableLabelProvider extends LabelProvider - implements ITableLabelProvider { - - - public Image getColumnImage(Object element, int columnIndex) { - return null; - } - - public String getColumnText(Object element, int columnIndex) { - Employee employee = (Employee) element; - - if (columnIndex == TableColumnAdapter.NAME_COLUMN) { - return employee.getName(); - } - - if (columnIndex == TableColumnAdapter.TITLE_COLUMN) { - return employee.getTitle(); - } - - return employee.getManager(); - } - } - - private class TableModel extends TableModelAdapter<Employee> { - - TableModel(ListValueModel<Employee> listHolder, - CollectionValueModel<Employee> selectedItemsHolder, - Table table, - ColumnAdapter<Employee> columnAdapter, - ITableLabelProvider labelProvider) { - - super(listHolder, - selectedItemsHolder, - table, - columnAdapter, - labelProvider); - } - - TableModel(ListValueModel<Employee> listHolder, - WritablePropertyValueModel<Employee> selectedItemHolder, - Table table, - ColumnAdapter<Employee> columnAdapter, - ITableLabelProvider labelProvider) { - - super(listHolder, - new PropertyCollectionValueModelAdapter<Employee>(selectedItemHolder), - table, - columnAdapter, - labelProvider); - } - - @Override - protected int indexOf(Employee item) { - return super.indexOf(item); - } - - @Override - protected Collection<Employee> selectedItems() { - return super.selectedItems(); - } - - @Override - protected void tableSelectionChanged(SelectionEvent event) { - super.tableSelectionChanged(event); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java deleted file mode 100644 index 810c151526..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java +++ /dev/null @@ -1,319 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.swt.TriStateCheckBoxModelAdapter; -import org.eclipse.jpt.common.ui.internal.widgets.DefaultWidgetFactory; -import org.eclipse.jpt.common.ui.internal.widgets.TriStateCheckBox; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; - -/** - * Play around with a set of tri-state check boxes. - */ -public class TriStateCheckBoxModelAdapterUITest - extends ApplicationWindow -{ - private final TestModel testModel; - private final WritablePropertyValueModel<TestModel> testModelHolder; - private final WritablePropertyValueModel<Boolean> flag1Holder; - private final WritablePropertyValueModel<Boolean> flag2Holder; - private final WritablePropertyValueModel<Boolean> notFlag2Holder; - - public static void main(String[] args) throws Exception { - Window window = new TriStateCheckBoxModelAdapterUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private TriStateCheckBoxModelAdapterUITest(String[] args) { - super(null); - this.testModel = new TestModel(Boolean.TRUE, Boolean.FALSE); - this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel); - this.flag1Holder = this.buildFlag1Holder(this.testModelHolder); - this.flag2Holder = this.buildFlag2Holder(this.testModelHolder); - this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder); - } - - private WritablePropertyValueModel<Boolean> buildFlag1Holder(PropertyValueModel<TestModel> subjectHolder) { - return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG1_PROPERTY) { - @Override - protected Boolean buildValue_() { - return this.subject.isFlag1(); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag1(value); - } - }; - } - - private WritablePropertyValueModel<Boolean> buildFlag2Holder(PropertyValueModel<TestModel> subjectHolder) { - return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return this.subject.isFlag2(); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag2(value); - } - }; - } - - private WritablePropertyValueModel<Boolean> buildNotFlag2Holder(PropertyValueModel<TestModel> subjectHolder) { - return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return this.subject.isNotFlag2(); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setNotFlag2(value); - } - }; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 100); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel); - this.buildControlPanel(mainPanel, checkBoxPanel); - return mainPanel; - } - - private Control buildCheckBoxPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlag1CheckBox(panel); - this.buildFlag2CheckBox(panel); - this.buildNotFlag2CheckBox(panel); - this.buildUnattachedCheckBox(panel); - - return panel; - } - - private void buildFlag1CheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 1", DefaultWidgetFactory.instance()); - TriStateCheckBoxModelAdapter.adapt(this.flag1Holder, checkBox); - } - - private void buildFlag2CheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 2", DefaultWidgetFactory.instance()); - TriStateCheckBoxModelAdapter.adapt(this.flag2Holder, checkBox); - } - - private void buildNotFlag2CheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "next flag 2", DefaultWidgetFactory.instance()); - TriStateCheckBoxModelAdapter.adapt(this.notFlag2Holder, checkBox); - } - - private void buildUnattachedCheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "unattached", DefaultWidgetFactory.instance()); - checkBox.addSelectionListener(this.buildUnattachedSelectionListener()); - } - - private SelectionListener buildUnattachedSelectionListener() { - return new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - System.out.println("unattached default selected: " + e); - } - public void widgetSelected(SelectionEvent e) { - System.out.println("unattached selected: " + e); - } - }; - } - - private void buildControlPanel(Composite parent, Control checkBoxPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(checkBoxPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlipFlag1Button(panel); - this.buildClearModelButton(panel); - this.buildRestoreModelButton(panel); - this.buildPrintModelButton(panel); - } - - private void buildFlipFlag1Button(Composite parent) { - this.buildFlipFlag1ACI().fill(parent); - } - - private ActionContributionItem buildFlipFlag1ACI() { - Action action = new Action("next flag 1", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.nextFlag1(); - } - }; - action.setToolTipText("next flag 1"); - return new ActionContributionItem(action); - } - - void nextFlag1() { - this.testModel.nextFlag1(); - } - - private void buildClearModelButton(Composite parent) { - this.buildClearModelACI().fill(parent); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.clearModel(); - } - }; - action.setToolTipText("clear model"); - return new ActionContributionItem(action); - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private void buildRestoreModelButton(Composite parent) { - this.buildRestoreModelACI().fill(parent); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore model"); - return new ActionContributionItem(action); - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private void buildPrintModelButton(Composite parent) { - this.buildPrintModelACI().fill(parent); - } - - private ActionContributionItem buildPrintModelACI() { - Action action = new Action("print model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.printModel(); - } - }; - action.setToolTipText("print model"); - return new ActionContributionItem(action); - } - - void printModel() { - System.out.println("flag 1: " + this.testModel.isFlag1()); - System.out.println("flag 2: " + this.testModel.isFlag2()); - System.out.println("not flag 2: " + this.testModel.isNotFlag2()); - System.out.println("***"); - } - - - private class TestModel extends AbstractModel { - private Boolean flag1; - public static final String FLAG1_PROPERTY = "flag1"; - private Boolean flag2; - public static final String FLAG2_PROPERTY = "flag2"; - private Boolean notFlag2; - public static final String NOT_FLAG2_PROPERTY = "notFlag2"; - - public TestModel(Boolean flag1, Boolean flag2) { - this.flag1 = flag1; - this.flag2 = flag2; - this.notFlag2 = this.next(flag2); - } - private Boolean next(Boolean b) { - return (b == null) ? Boolean.TRUE : b.booleanValue() ? Boolean.FALSE : null; - } - public Boolean isFlag1() { - return this.flag1; - } - public void setFlag1(Boolean flag1) { - Boolean old = this.flag1; - this.flag1 = flag1; - this.firePropertyChanged(FLAG1_PROPERTY, old, flag1); - } - public void nextFlag1() { - this.setFlag1(this.next(this.flag1)); - } - public Boolean isFlag2() { - return this.flag2; - } - public void setFlag2(Boolean flag2) { - Boolean old = this.flag2; - this.flag2 = flag2; - this.firePropertyChanged(FLAG2_PROPERTY, old, flag2); - - old = this.notFlag2; - this.notFlag2 = this.next(flag2); - this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2); - } - public void nextFlag2() { - this.setFlag2(this.next(this.flag2)); - } - public Boolean isNotFlag2() { - return this.notFlag2; - } - public void setNotFlag2(Boolean notFlag2) { - this.setFlag2(this.next(flag2)); - } - public void nextNotFlag2() { - this.setNotFlag2(this.next(this.notFlag2)); - } - @Override - public String toString() { - return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java deleted file mode 100644 index 1c2904e0e7..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java +++ /dev/null @@ -1,803 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.fail; -import org.eclipse.jface.dialogs.TitleAreaDialog; -import org.eclipse.jpt.common.ui.internal.util.ControlAligner; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Layout; -import org.eclipse.swt.widgets.Shell; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlAlignerTest { - - private ControlAligner controlAligner; - private Composite parent; - private Shell shell; - - private Layout buildSpacerLayout() { - return new Layout() { - @Override - protected Point computeSize(Composite composite, - int widthHint, - int heightHint, - boolean flushCache) { - - return new Point(widthHint, heightHint); - } - - @Override - protected void layout(Composite composite, boolean flushCache) { - GridData data = (GridData) composite.getLayoutData(); - composite.setBounds(0, 0, data.widthHint, data.heightHint); - } - }; - } - - @Before - public void setUp() { - - controlAligner = new ControlAligner(); - - shell = new Shell(Display.getCurrent()); - shell.setLayout(new GridLayout(1, false)); - - parent = new Composite(shell, SWT.NONE); - parent.setLayout(new GridLayout(1, false)); - parent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - } - - @After - public void tearDown() { - - if (controlAligner != null) { - controlAligner.dispose(); - controlAligner = null; - } - - if (shell != null) { - shell.dispose(); - shell = null; - } - } - - @Test - public void testAddControl1() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - updateGridData(label); - - controlAligner.add(label); - - assertEquals( - "The maximum width should be 0,", - 0, - controlAligner.getMaximumWidth() - ); - - label.setText("This is a ControlAligner"); -// parent.layout(true, true); - - Point size = label.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControl2() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button button = new Button(pane, SWT.NULL); - button.setText("This is a ControlAligner"); - updateGridData(button); - - controlAligner.add(button); - parent.layout(true, true); - - Point size = button.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControl3() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - -// parent.layout(true, true); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControlAligner1() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test - public void testAddControlAligner2() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); - - controlAligner.add(controlAligner2); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test(expected=IllegalArgumentException.class) - public void testAddControlAlignerToItself() throws Exception { - controlAligner.add(controlAligner); - fail("A ControlAligner can't be added to itself"); - } - - @Test - public void testDialog_AddControl1() throws Exception { - - final int[] maximumWidth = new int[1]; - final int[] size = new int[1]; - - TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) { - - private Label label; - - @Override - protected Control createDialogArea(Composite parent) { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - label = new Label(pane, SWT.LEFT); - label.setText("This is a ControlAligner"); - updateGridData(label); - - controlAligner.add(label); - - return parent; - } - - @Override - protected void initializeBounds() { - super.initializeBounds(); - size[0] = label.getSize().x; - maximumWidth[0] = controlAligner.getMaximumWidth(); - } - }; - - dialog.create(); - dialog.close(); - - assertEquals( - "The width should be " + size[0] + ",", - size[0], - maximumWidth[0] - ); - } - - @Test - public void testDialog_AddControl2() throws Exception { - - final int[] maximumWidth = new int[1]; - final int[] sizes = new int[2]; - - TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) { - - private Button button; - private Label label; - - @Override - protected Control createDialogArea(Composite parent) { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - label = new Label(pane, SWT.NULL); - label.setText("This is a ControlAligner"); - updateGridData(label); - - controlAligner.add(label); - - button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - - controlAligner.add(button); - - return parent; - } - - @Override - protected void initializeBounds() { - super.initializeBounds(); - sizes[0] = label.getSize().x; - sizes[1] = button.getSize().x; - maximumWidth[0] = controlAligner.getMaximumWidth(); - } - }; - - dialog.create(); - dialog.close(); - - int labelSize = sizes[0]; - int buttonSize = sizes[1]; - int max = Math.max(labelSize, buttonSize); - - assertEquals( - "The width should be " + max + ",", - max, - maximumWidth[0] - ); - } - - @Test - public void testDispose() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - label.dispose(); - - Point newButtonSize = button.getSize(); - - assertNotSame( - "The old max and new max should not be the same", - max, - newButtonSize.x - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - newButtonSize.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testHierarchyOfControlAligners() throws Exception { - - // Aligner1 - // ^ - // |-Aligner2 - // ^ - // |-Aligner3 - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - - ControlAligner controlAligner3 = new ControlAligner(); - controlAligner2.add(controlAligner3); - - // Test 1 - Label label1 = new Label(parent, SWT.NULL); - label1.setText("This is a label widget"); - parent.layout(true, true); - - int labelWidth1 = label1.getSize().x; - controlAligner3.add(label1); - - assertEquals(controlAligner3.getMaximumWidth(), labelWidth1); - assertEquals(controlAligner2.getMaximumWidth(), labelWidth1); - assertEquals(controlAligner.getMaximumWidth(), labelWidth1); - - // Test 2 - Label label2 = new Label(parent, SWT.NULL); - label2.setText("ShortLabel"); - controlAligner2.add(label2); - parent.layout(true); - - int newLabelWidth1 = label1.getSize().x; - int newLabelWidth2 = label2.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - // Test 3 - Label label3 = new Label(parent, SWT.NULL); - label3.setText("A very long label that takes a lot of horizontal space"); -// parent.layout(true); - controlAligner.add(label3); - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - int newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - // Make sure all the locked are removed - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label2 - label2.setText("mm"); -// parent.layout(true); - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label1 - label1.setText("a"); -// parent.layout(true); - - Composite parent1 = new Composite(SWTUtil.getShell(), SWT.NULL); - parent1.setLayout(new GridLayout()); - - Label tempLabel = new Label(parent1, SWT.NULL); - tempLabel.setText("a"); -// parent1.layout(true); - - int realWidth = tempLabel.getSize().x; - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - assertFalse(newLabelWidth1 == realWidth); - - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label1 - label1.setText("Yes another big long long text so that all the labels will have to take the size of this label to make sure ControlAligner works correctly"); -// parent.layout(true); - - // Weird: It seems no notification is sent, fire one manually - Event event = new Event(); - event.widget = label1; - event.type = SWT.Resize; - label1.notifyListeners(SWT.Resize, event); - - Composite parent2 = new Composite(SWTUtil.getShell(), SWT.NULL); - parent2.setLayout(new GridLayout()); - - tempLabel = new Label(parent2, SWT.NULL); - tempLabel.setText(label1.getText()); - parent2.layout(true); - - realWidth = tempLabel.getSize().x; - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(controlAligner.getMaximumWidth(), newLabelWidth1); - assertEquals(realWidth, newLabelWidth1); - - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - } - - @Test - public void testRemoveControl1() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button button = new Button(pane, SWT.NULL); - button.setText("This is a ControlAligner"); - updateGridData(button); - - controlAligner.add(button); - parent.layout(true, true); - - Point size = button.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - - controlAligner.remove(button); - - assertEquals( - "The width should be 0, ", - 0, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testRemoveControl2() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); -// parent.layout(true, true); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - controlAligner.remove(label); - - Point newButtonSize = button.getSize(); - - assertNotSame( - "The old max and new max should not be the same", - max, - newButtonSize.x - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - newButtonSize.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testRemoveControl4() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - // Widget 1 - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - controlAligner.add(label); - - // Widget 2 - Composite spacer = new Composite(pane, SWT.NULL); - spacer.setLayout(buildSpacerLayout()); - updateGridData(spacer); - controlAligner.add(spacer); - - // Widget 3 - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - controlAligner.add(button); - -// parent.layout(true, true); - - // Make sure the 3 widgets have the same width - Point labelSize = label.getSize(); - Point spacerSize = spacer.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - max = Math.max(max, spacerSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The spacer's width should be " + max + ",", - max, - spacerSize.x - ); - - // Remove the label (the widest widget) and make sure the width was - // correctly calculated - controlAligner.remove(label); - - spacerSize = spacer.getSize(); - buttonSize = button.getSize(); - int max2 = Math.max(spacerSize.x, buttonSize.x); - - assertNotSame( - "The old max and new max should not be the same", - max, - max2 - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - max2, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The spacer's width should have been adjusted", - max2, - spacerSize.x - ); - } - - @Test - public void testRemoveControlAligner1() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - // Test 1 - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - - // Test 2 - controlAligner.remove(label1); - - width = label2.getSize().x; - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test - public void testRemoveControlAligner2() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - // Test 1 - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - - // Test 2 - controlAligner2.remove(label2); - - width = label1.getSize().x; - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - private void updateGridData(Control control) { - GridData data = new GridData(); - data.horizontalAlignment = GridData.FILL; - data.grabExcessHorizontalSpace = false; - control.setLayoutData(data); - } -}
\ No newline at end of file diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java deleted file mode 100644 index d6406a1bb9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel<Boolean> booleanHolder = - new SimplePropertyValueModel<Boolean>(true); - - Combo combo = new Combo(parent, SWT.BORDER); - - SWTTools.controlEnabledState(booleanHolder, combo); - - assertTrue( - "The Combo should be enabled", - combo.isEnabled() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The Combo should not be enabled", - combo.isEnabled() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The Combo should be enabled", - combo.isEnabled() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The Combo should not be enabled", - combo.isEnabled() - ); - - // Dispose - combo.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java deleted file mode 100644 index 49111bdef5..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import org.eclipse.jpt.common.ui.internal.util.ControlSwitcher; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.part.PageBook; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlSwitcherTest { - - private PageBook pageBook; - private Composite pane1; - private Composite pane2; - private Composite parent; - - private Composite buildPane1() { - - if (pane1 == null) { - - pane1 = new Composite(pageBook, SWT.NULL); - pane1.setLayout(new GridLayout(2, false)); - - Label label = new Label(pane1, SWT.NULL); - label.setText("&Test2:"); - - Text text = new Text(pane1, SWT.BORDER); - text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Combo combo = new Combo(pane1, SWT.BORDER); - - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - combo.setLayoutData(data); - } - - return pane1; - } - - private Composite buildPane2() { - - if (pane2 == null) { - - pane2 = new Composite(pageBook, SWT.NULL); - pane2.setLayout(new GridLayout(2, false)); - - Label label = new Label(pane2, SWT.NULL); - label.setText("&Test1:"); - - Text text = new Text(pane2, SWT.BORDER); - text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - } - - return pane2; - } - - private Transformer<Boolean, Control> buildTransformer() { - return new Transformer<Boolean, Control>() { - public Control transform(Boolean value) { - return (value == null) ? null : (value ? pane1 : pane2); - } - }; - } - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - - pageBook = new PageBook(parent, SWT.NULL); - pageBook.setLayoutData(new GridData()); - } - - @After - public void tearDown() { - - if (parent != null) { - - parent.dispose(); - - parent = null; - pageBook = null; - } - } - - @Test - public void testSwitch() { - - SimplePropertyValueModel<Boolean> switchHolder = new SimplePropertyValueModel<Boolean>(); - Transformer<Boolean, Control> transformer = buildTransformer(); - - pane1 = buildPane1(); - pane1.setVisible(false); - - pane2 = buildPane2(); - pane2.setVisible(false); - - new ControlSwitcher( - switchHolder, - transformer, - pageBook - ); - - // Test 1 - switchHolder.setValue(true); - Control control = (Control) ReflectionTools.getFieldValue(pageBook, "currentPage"); - - assertNotNull( - "The page book's page shouldn't be null", - control - ); - - assertSame( - "The current pane should be pane1", - pane1, - control - ); - - Point pane1Size = pane1.computeSize(SWT.DEFAULT, SWT.DEFAULT); - Point pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT); - - assertEquals( - "The width of the PageBook should be the same as the width of pane1", - pane1Size.x, - pageBookSize.x - ); - - assertEquals( - "The height of the PageBook should be the same as the height of pane1", - pane1Size.y, - pageBookSize.y - ); - - // Test 2 - switchHolder.setValue(false); - control = (Control) ReflectionTools.getFieldValue(pageBook, "currentPage"); - - assertNotNull( - "The page book's page shouldn't be null", - control - ); - - assertSame( - "The current pane should be pane2", - pane2, - control - ); - - Point pane2Size = pane2.computeSize(SWT.DEFAULT, SWT.DEFAULT); - pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT); - - assertEquals( - "The width of the PageBook should be the same as the width of pane2", - pane2Size.x, - pageBookSize.x - ); - - assertEquals( - "The height of the PageBook should be the same as the height of pane2", - pane2Size.y, - pageBookSize.y - ); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java deleted file mode 100644 index f978ed1618..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlVisibilityEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel<Boolean> booleanHolder = - new SimplePropertyValueModel<Boolean>(true); - - Combo combo = new Combo(parent, SWT.BORDER); - - SWTTools.controlVisibleState(booleanHolder, combo); - - assertTrue( - "The Combo should be visible", - combo.isVisible() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The Combo should not be visible", - combo.isVisible() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The Combo should be visible", - combo.isVisible() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The Combo should not be visible", - combo.isVisible() - ); - - // Dispose - combo.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java deleted file mode 100644 index 38f00d21d0..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import junit.framework.JUnit4TestAdapter; -import junit.framework.Test; -import junit.framework.TestSuite; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@SuiteClasses -({ - ControlAlignerTest.class, - ControlSwitcherTest.class, - ControlEnablerTest.class, - ControlVisibilityEnablerTest.class, - LabeledButtonTest.class, - LabeledLabelTest.class, - LabeledControlUpdaterTest.class, - PaneEnablerTest.class, - PaneVisibilityEnablerTest.class, -}) -@RunWith(Suite.class) -public final class JptUiUtilTests { - - private JptUiUtilTests() { - super(); - throw new UnsupportedOperationException(); - } - - public static Test suite() { - TestSuite suite = new TestSuite(); - suite.addTest(new JUnit4TestAdapter(JptUiUtilTests.class)); - return suite; - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java deleted file mode 100644 index 52515acb41..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import org.eclipse.core.runtime.AssertionFailedException; -import org.eclipse.jpt.common.ui.internal.util.LabeledButton; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class LabeledButtonTest { - - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - parent = null; - } - } - - @Test - public void testLabeledButton1() { - Button button = new Button(parent, SWT.NULL); - new LabeledButton(button); - } - - @Test(expected=AssertionFailedException.class) - public void testLabeledButton2() { - new LabeledButton(null); - } - - @Test - public void testSetImage() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - labeledButton.setImage(expected); - - assertEquals( - "The Button didn't receive the Image", - expected, - button.getImage() - ); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetImageDispose() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - button.dispose(); - - // This should not fail but simply do nothing - labeledButton.setImage(expected); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetText() { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - String expected = "This is a test"; - labeledButton.setText(expected); - - assertEquals( - "The Button didn't receive the text", - expected, - button.getText() - ); - } - - @Test - public void testSetTextDispose() { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - button.dispose(); - - // This should not fail but simply do nothing - String expected = "This is a test"; - labeledButton.setText(expected); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java deleted file mode 100644 index 2238dc972f..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import org.eclipse.jpt.common.ui.internal.util.LabeledControlUpdater; -import org.eclipse.jpt.common.ui.internal.util.LabeledLabel; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class LabeledControlUpdaterTest { - - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - parent = null; - } - } - - @Test - public void testSetImage() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel<Image> imageHolder = new SimplePropertyValueModel<Image>(); - new LabeledControlUpdater(labeledLabel, null, imageHolder); - - labeledLabel.setImage(expected); - - assertEquals( - "The Label didn't receive the Image", - expected, - label.getImage() - ); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetImageDispose() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel<Image> imageHolder = new SimplePropertyValueModel<Image>(); - new LabeledControlUpdater(labeledLabel, null, imageHolder); - - label.dispose(); - labeledLabel.setImage(expected); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetText() { - - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel<String> textHolder = new SimplePropertyValueModel<String>(); - new LabeledControlUpdater(labeledLabel, textHolder); - - String expected = "This is a test"; - textHolder.setValue(expected); - - assertEquals( - "The Label didn't receive the text", - expected, - label.getText() - ); - } - - @Test - public void testSetTextDispose() { - - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel<String> textHolder = new SimplePropertyValueModel<String>(); - new LabeledControlUpdater(labeledLabel, textHolder); - - label.dispose(); - - String expected = "This is a test"; - textHolder.setValue(expected); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java deleted file mode 100644 index d43bcee4fb..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import org.eclipse.core.runtime.AssertionFailedException; -import org.eclipse.jpt.common.ui.internal.util.LabeledLabel; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class LabeledLabelTest { - - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - parent = null; - } - } - - @Test - public void testLabeledButton1() { - Label label = new Label(parent, SWT.NULL); - new LabeledLabel(label); - } - - @Test(expected=AssertionFailedException.class) - public void testLabeledButton2() { - new LabeledLabel(null); - } - - @Test - public void testSetImage() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - labeledLabel.setImage(expected); - - assertEquals( - "The Label didn't receive the Image", - expected, - label.getImage() - ); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetImageDispose() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - label.dispose(); - - // This should not fail but simply do nothing - labeledLabel.setImage(expected); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetText() { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - String expected = "This is a test"; - labeledLabel.setText(expected); - - assertEquals( - "The Label didn't receive the text", - expected, - label.getText() - ); - } - - @Test - public void testSetTextDispose() { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - label.dispose(); - - // This should not fail but simply do nothing - String expected = "This is a test"; - labeledLabel.setText(expected); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java deleted file mode 100644 index b68fd99686..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.PaneEnabler; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.widgets.DialogPane; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class PaneEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel<Boolean> booleanHolder = - new SimplePropertyValueModel<Boolean>(true); - - DialogPane<Node> pane = new DialogPane<Node>( - new SimplePropertyValueModel<Node>(), - parent) - { - @Override - protected void initializeLayout(Composite container) { - } - }; - - new PaneEnabler(booleanHolder, pane); - - assertTrue( - "The pane should be enabled", - pane.getControl().isEnabled() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The pane should not be enabled", - pane.getControl().isEnabled() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The pane should be enabled", - pane.getControl().isEnabled() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The pane should not be enabled", - pane.getControl().isEnabled() - ); - - // Dispose - pane.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java deleted file mode 100644 index e0ac3ce2ad..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.PaneVisibilityEnabler; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.widgets.DialogPane; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class PaneVisibilityEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel<Boolean> booleanHolder = - new SimplePropertyValueModel<Boolean>(true); - - DialogPane<Node> pane = new DialogPane<Node>( - new SimplePropertyValueModel<Node>(), - parent) - { - @Override - protected void initializeLayout(Composite container) { - } - }; - - new PaneVisibilityEnabler(booleanHolder, pane); - - assertTrue( - "The pane should be visible", - pane.getControl().isVisible() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The pane should not be visible", - pane.getControl().isVisible() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The pane should be visible", - pane.getControl().isVisible() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The pane should not be visible", - pane.getControl().isVisible() - ); - - // Dispose - pane.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java deleted file mode 100644 index f1568bd867..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java +++ /dev/null @@ -1,278 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -/** - * Play around with boolean state controllers ('enabled' and 'visible'). - * <p> - * Note the behavior of composites:<ul> - * <li>When a composite is disabled, its children are disabled but <em>not</em> - * grayed out. - * <li>When a composite is made invisible, its children are also made - * invisible. - * </ul> - */ -@SuppressWarnings("nls") -public class BooleanStateControllerUITest - extends ApplicationWindow -{ - private final WritablePropertyValueModel<Boolean> enabledHolder; - private final WritablePropertyValueModel<Boolean> visibleHolder; - private final SimpleListValueModel<String> listHolder; - private final WritablePropertyValueModel<String> listSelectionHolder; - - public static void main(String[] args) throws Exception { - Window window = new BooleanStateControllerUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private BooleanStateControllerUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.enabledHolder = new SimplePropertyValueModel<Boolean>(Boolean.TRUE); - this.visibleHolder = new SimplePropertyValueModel<Boolean>(Boolean.TRUE); - this.listHolder = this.buildListHolder(); - this.listSelectionHolder = new SimplePropertyValueModel<String>(null); - } - - private SimpleListValueModel<String> buildListHolder() { - SimpleListValueModel<String> result = new SimpleListValueModel<String>(); - result.add("zero"); - result.add("one"); - result.add("two"); - result.add("three"); - result.add("four"); - result.add("five"); - result.add("six"); - result.add("seven"); - return result; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(500, 150); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control widgetPanel = this.buildWidgetPanels(mainPanel); - this.buildControlPanel(mainPanel, widgetPanel); - return mainPanel; - } - - private Control buildWidgetPanels(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout(SWT.VERTICAL)); - - this.buildWidgetPanel1(panel); - this.buildWidgetPanel2(panel); - - return panel; - } - - private void buildWidgetPanel1(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FillLayout(SWT.HORIZONTAL)); - - Button enabledComboBoxCheckBox = this.buildEnabledComboBoxCheckBox(panel); - SWTTools.bind(this.enabledHolder, enabledComboBoxCheckBox); - - Button visibleComboBoxCheckBox = this.buildVisibleComboBoxCheckBox(panel); - SWTTools.bind(this.visibleHolder, visibleComboBoxCheckBox); - - Label comboBoxLabel = this.buildComboBoxLabel(panel); - Combo comboBox = this.buildComboBox(panel); - SWTTools.bind(this.listHolder, this.listSelectionHolder, comboBox); - SWTTools.controlEnabledState(this.enabledHolder, comboBoxLabel, comboBox); - SWTTools.controlVisibleState(this.visibleHolder, comboBoxLabel, comboBox); - } - - private Button buildEnabledComboBoxCheckBox(Composite parent) { - return this.buildCheckBox(parent, "enabled"); - } - - private Button buildVisibleComboBoxCheckBox(Composite parent) { - return this.buildCheckBox(parent, "visible"); - } - - private Button buildCheckBox(Composite parent, String text) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText(text); - return checkBox; - } - - private Label buildComboBoxLabel(Composite parent) { - Label label = new Label(parent, SWT.LEFT); - label.setText("list:"); - return label; - } - - private Combo buildComboBox(Composite parent) { - return new Combo(parent, SWT.READ_ONLY); - } - - private void buildWidgetPanel2(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FillLayout(SWT.HORIZONTAL)); - - Button checkBox1 = this.buildCheckBox(panel, "one"); - this.buildCheckBox(panel, "two"); - this.buildCheckBox(panel, "three"); - this.buildCheckBox(panel, "four"); - - SWTTools.controlEnabledState(this.enabledHolder, panel, checkBox1); - SWTTools.controlVisibleState(this.visibleHolder, panel); - } - - private void buildControlPanel(Composite parent, Control widgetPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(widgetPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildClearEnabledModelButton(panel); - this.buildClearVisibleModelButton(panel); - this.buildNullSelectionModelButton(panel); - this.buildNextButton(panel); - } - - private void buildClearEnabledModelButton(Composite parent) { - this.buildClearEnabledModelACI().fill(parent); - } - - private ActionContributionItem buildClearEnabledModelACI() { - Action action = new Action("clear enabled model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.clearEnabledModel(); - } - }; - action.setToolTipText("clear enabled model"); - return new ActionContributionItem(action); - } - - void clearEnabledModel() { - this.enabledHolder.setValue(null); - } - - private void buildClearVisibleModelButton(Composite parent) { - this.buildClearVisibleModelACI().fill(parent); - } - - private ActionContributionItem buildClearVisibleModelACI() { - Action action = new Action("clear visible model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.clearVisibleModel(); - } - }; - action.setToolTipText("clear visible model"); - return new ActionContributionItem(action); - } - - void clearVisibleModel() { - this.visibleHolder.setValue(null); - } - - private void buildNullSelectionModelButton(Composite parent) { - this.buildNullSelectionModelACI().fill(parent); - } - - private ActionContributionItem buildNullSelectionModelACI() { - Action action = new Action("null selection model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.setSelectionModelNull(); - } - }; - action.setToolTipText("null selection model"); - return new ActionContributionItem(action); - } - - void setSelectionModelNull() { - this.listSelectionHolder.setValue(null); - } - - private void buildNextButton(Composite parent) { - this.buildNextACI().fill(parent); - } - - private ActionContributionItem buildNextACI() { - Action action = new Action("next", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.next(); - } - }; - action.setToolTipText("next"); - return new ActionContributionItem(action); - } - - void next() { - this.listSelectionHolder.setValue(this.getNextListSelection()); - } - - private String getNextListSelection() { - return this.listHolder.get(this.getNextListSelectionIndex()); - } - - private int getNextListSelectionIndex() { - int index = this.getListSelectionIndex(); - if (index == -1) { - return 0; - } - index++; - return (index == this.listHolder.size()) ? 0 : index; - } - - private int getListSelectionIndex() { - return this.listHolder.indexOf(this.getListSelection()); - } - - private String getListSelection() { - return this.listSelectionHolder.getValue(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java deleted file mode 100644 index 6d211010a9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java +++ /dev/null @@ -1,318 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; - -/** - * Play around with a set of check boxes. - */ -@SuppressWarnings("nls") -public class CheckBoxModelBindingUITest - extends ApplicationWindow -{ - private final TestModel testModel; - private final WritablePropertyValueModel<TestModel> testModelHolder; - private final WritablePropertyValueModel<Boolean> flag1Holder; - private final WritablePropertyValueModel<Boolean> flag2Holder; - private final WritablePropertyValueModel<Boolean> notFlag2Holder; - - public static void main(String[] args) throws Exception { - Window window = new CheckBoxModelBindingUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private CheckBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.testModel = new TestModel(true, true); - this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel); - this.flag1Holder = this.buildFlag1Holder(this.testModelHolder); - this.flag2Holder = this.buildFlag2Holder(this.testModelHolder); - this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder); - } - - private WritablePropertyValueModel<Boolean> buildFlag1Holder(PropertyValueModel<TestModel> subjectHolder) { - return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG1_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isFlag1()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag1(value.booleanValue()); - } - }; - } - - private WritablePropertyValueModel<Boolean> buildFlag2Holder(PropertyValueModel<TestModel> subjectHolder) { - return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isFlag2()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag2(value.booleanValue()); - } - }; - } - - private WritablePropertyValueModel<Boolean> buildNotFlag2Holder(PropertyValueModel<TestModel> subjectHolder) { - return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isNotFlag2()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setNotFlag2(value.booleanValue()); - } - }; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 100); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel); - this.buildControlPanel(mainPanel, checkBoxPanel); - return mainPanel; - } - - private Control buildCheckBoxPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlag1CheckBox(panel); - this.buildFlag2CheckBox(panel); - this.buildNotFlag2CheckBox(panel); - this.buildUnattachedCheckBox(panel); - - return panel; - } - - private void buildFlag1CheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("flag 1"); - SWTTools.bind(this.flag1Holder, checkBox); - } - - private void buildFlag2CheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("flag 2"); - SWTTools.bind(this.flag2Holder, checkBox); - } - - private void buildNotFlag2CheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("not flag 2"); - SWTTools.bind(this.notFlag2Holder, checkBox); - } - - private void buildUnattachedCheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("unattached"); - checkBox.addSelectionListener(this.buildUnattachedSelectionListener()); - } - - private SelectionListener buildUnattachedSelectionListener() { - return new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - System.out.println("unattached default selected: " + e); - } - public void widgetSelected(SelectionEvent e) { - System.out.println("unattached selected: " + e); - } - }; - } - - private void buildControlPanel(Composite parent, Control checkBoxPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(checkBoxPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlipFlag1Button(panel); - this.buildNotFlag2ToggleButton(panel); - this.buildClearModelButton(panel); - this.buildRestoreModelButton(panel); - this.buildPrintModelButton(panel); - } - - private void buildFlipFlag1Button(Composite parent) { - this.buildFlipFlag1ACI().fill(parent); - } - - private ActionContributionItem buildFlipFlag1ACI() { - Action action = new Action("flip flag 1", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.flipFlag1(); - } - }; - action.setToolTipText("flip flag 1"); - return new ActionContributionItem(action); - } - - void flipFlag1() { - this.testModel.setFlag1( ! this.testModel.isFlag1()); - } - - private void buildNotFlag2ToggleButton(Composite parent) { - Button checkBox = new Button(parent, SWT.TOGGLE); - checkBox.setText("not flag 2"); - SWTTools.bind(this.notFlag2Holder, checkBox); - } - - private void buildClearModelButton(Composite parent) { - this.buildClearModelACI().fill(parent); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear model"); - return new ActionContributionItem(action); - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private void buildRestoreModelButton(Composite parent) { - this.buildRestoreModelACI().fill(parent); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore model"); - return new ActionContributionItem(action); - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private void buildPrintModelButton(Composite parent) { - this.buildPrintModelACI().fill(parent); - } - - private ActionContributionItem buildPrintModelACI() { - Action action = new Action("print model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.printModel(); - } - }; - action.setToolTipText("print model"); - return new ActionContributionItem(action); - } - - void printModel() { - System.out.println("flag 1: " + this.testModel.isFlag1()); - System.out.println("flag 2: " + this.testModel.isFlag2()); - System.out.println("not flag 2: " + this.testModel.isNotFlag2()); - System.out.println("***"); - } - - - public static class TestModel extends AbstractModel { - private boolean flag1; - public static final String FLAG1_PROPERTY = "flag1"; - private boolean flag2; - public static final String FLAG2_PROPERTY = "flag2"; - private boolean notFlag2; - public static final String NOT_FLAG2_PROPERTY = "notFlag2"; - - public TestModel(boolean flag1, boolean flag2) { - this.flag1 = flag1; - this.flag2 = flag2; - this.notFlag2 = ! flag2; - } - public boolean isFlag1() { - return this.flag1; - } - public void setFlag1(boolean flag1) { - boolean old = this.flag1; - this.flag1 = flag1; - this.firePropertyChanged(FLAG1_PROPERTY, old, flag1); - } - public boolean isFlag2() { - return this.flag2; - } - public void setFlag2(boolean flag2) { - boolean old = this.flag2; - this.flag2 = flag2; - this.firePropertyChanged(FLAG2_PROPERTY, old, flag2); - - old = this.notFlag2; - this.notFlag2 = ! flag2; - this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2); - } - public boolean isNotFlag2() { - return this.notFlag2; - } - public void setNotFlag2(boolean notFlag2) { - this.setFlag2( ! notFlag2); - } - @Override - public String toString() { - return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java deleted file mode 100644 index dad37d9521..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java +++ /dev/null @@ -1,664 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import java.text.Collator; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -/** - * Play around with a set of read-only combo-boxes. - */ -@SuppressWarnings("nls") -public class DropDownListBoxModelBindingUITest - extends ApplicationWindow -{ - final TaskList taskList; - private final WritablePropertyValueModel<TaskList> taskListHolder; - private Text taskTextField; - - public static void main(String[] args) throws Exception { - Window window = new DropDownListBoxModelBindingUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private DropDownListBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.taskList = new TaskList(); - this.taskListHolder = new SimplePropertyValueModel<TaskList>(this.taskList); - this.taskList.addTask("swim"); - this.taskList.addTask("bike"); - this.taskList.addTask("run"); - Task rest = this.taskList.addTask("rest"); - this.taskList.addTask("repeat"); - this.taskList.setPriorityTask(rest); - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(800, 300); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control taskListPanel = this.buildTaskListPanel(mainPanel); - this.buildControlPanel(mainPanel, taskListPanel); - return mainPanel; - } - - private Control buildTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -30); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - this.buildTaskListPanel_(panel); // false = native (Combo) - - return panel; - } - - private Control buildTaskListPanel_(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(50); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - this.buildPrimitiveTaskListPanel(panel); - this.buildObjectTaskListPanel(panel); - - return panel; - } - - private void buildPrimitiveTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(50); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedPrimitiveListPanel(panel); - this.buildStandardSortedPrimitiveListPanel(panel); - this.buildCustomSortedPrimitiveListPanel(panel); - } - - private void buildObjectTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(50); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedObjectListPanel(panel); - this.buildStandardSortedObjectListPanel(panel); - this.buildCustomSortedObjectListPanel(panel); - } - - private void buildUnsortedPrimitiveListPanel(Composite parent) { - String label = "primitive unsorted"; - this.buildComboBoxPanel(parent, label, this.buildUnsortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter()); - } - - private void buildStandardSortedPrimitiveListPanel(Composite parent) { - String label = "primitive sorted"; - this.buildComboBoxPanel(parent, label, this.buildStandardSortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter()); - } - - private void buildCustomSortedPrimitiveListPanel(Composite parent) { - String label = "primitive reverse sorted"; - this.buildComboBoxPanel(parent, label, this.buildCustomSortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter()); - } - - private void buildUnsortedObjectListPanel(Composite parent) { - String label = "object unsorted"; - this.buildComboBoxPanel(parent, label, this.buildUnsortedObjectListModel(), this.buildPriorityTaskAdapter()); - } - - private void buildStandardSortedObjectListPanel(Composite parent) { - String label = "object sorted"; - this.buildComboBoxPanel(parent, label, this.buildStandardSortedObjectListModel(), this.buildPriorityTaskAdapter()); - } - - private void buildCustomSortedObjectListPanel(Composite parent) { - String label = "object reverse sorted"; - this.buildComboBoxPanel(parent, label, this.buildCustomSortedObjectListModel(), this.buildPriorityTaskAdapter()); - } - - private ListValueModel<String> buildUnsortedPrimitiveListModel() { - return this.buildPrimitiveTaskListAdapter(); - } - - private ListValueModel<String> buildStandardSortedPrimitiveListModel() { - return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter()); - } - - private ListValueModel<String> buildCustomSortedPrimitiveListModel() { - return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator()); - } - - private ListValueModel<Task> buildUnsortedObjectListModel() { - return this.buildObjectTaskListAdapter(); - } - - private ListValueModel<Task> buildStandardSortedObjectListModel() { - return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter()); - } - - private ListValueModel<Task> buildCustomSortedObjectListModel() { - return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter(), this.buildCustomTaskComparator()); - } - - private <E> void buildComboBoxPanel(Composite parent, String label, ListValueModel<E> model, WritablePropertyValueModel<E> selectedItemModel) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FormLayout()); - - Label comboBoxLabel = new Label(panel, SWT.LEFT | SWT.VERTICAL); - comboBoxLabel.setText(label); - FormData fd = new FormData(); - fd.top = new FormAttachment(0, 3); - fd.bottom = new FormAttachment(0, 20); - fd.left = new FormAttachment(0, 5); - fd.right = new FormAttachment(100); - comboBoxLabel.setLayoutData(fd); - - Combo comboBox = this.buildComboBox(panel); - fd = new FormData(); - fd.top = new FormAttachment(comboBoxLabel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - comboBox.setLayoutData(fd); - SWTTools.bind(model, selectedItemModel, comboBox); // use #toString() - } - - private Combo buildComboBox(Composite parent) { - return new Combo(parent, SWT.READ_ONLY); - } - - private Comparator<String> buildCustomStringComparator() { - return new Comparator<String>() { - public int compare(String s1, String s2) { - return s2.compareTo(s1); - } - }; - } - - private Comparator<Task> buildCustomTaskComparator() { - return new Comparator<Task>() { - public int compare(Task to1, Task to2) { - return to2.compareTo(to1); - } - }; - } - - private ListValueModel<String> buildPrimitiveTaskListAdapter() { - return new ListAspectAdapter<TaskList, String>(this.taskListHolder, TaskList.TASK_NAMES_LIST) { - @Override - protected ListIterator<String> listIterator_() { - return this.subject.taskNames(); - } - }; - } - - private ListValueModel<Task> buildObjectTaskListAdapter() { - return new ListAspectAdapter<TaskList, Task>(this.taskListHolder, TaskList.TASKS_LIST) { - @Override - protected ListIterator<Task> listIterator_() { - return this.subject.tasks(); - } - }; - } - - private WritablePropertyValueModel<Task> buildPriorityTaskAdapter() { - return new PriorityTaskAdapter(this.taskListHolder); - } - - static class PriorityTaskAdapter - extends PropertyAspectAdapter<TaskList, Task> - { - PriorityTaskAdapter(WritablePropertyValueModel<TaskList> taskListHolder) { - super(taskListHolder, TaskList.PRIORITY_TASK_PROPERTY); - } - @Override - protected Task buildValue_() { - return this.subject.getPriorityTask(); - } - @Override - protected void setValue_(Task value) { - this.subject.setPriorityTask(value); - } - } - - private WritablePropertyValueModel<String> buildPriorityTaskNameAdapter() { - return new PriorityTaskNameAdapter(this.taskListHolder); - } - - static class PriorityTaskNameAdapter - extends PropertyAspectAdapter<TaskList, String> - { - PriorityTaskNameAdapter(WritablePropertyValueModel<TaskList> taskListHolder) { - super(taskListHolder, TaskList.PRIORITY_TASK_NAME_PROPERTY); - } - @Override - protected String buildValue_() { - return this.subject.getPriorityTaskName(); - } - @Override - protected void setValue_(String value) { - // ignore - } - } - - private void buildControlPanel(Composite parent, Control taskListPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(taskListPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control misc = this.buildMiscTaskPanel(panel); - this.buildAddRemoveTaskPanel(panel, misc); - } - - // is there a better way to associate an ACI with form data? - private Control buildMiscTaskPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -400); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildClearListACI().fill(panel); - this.buildClearModelACI().fill(panel); - this.buildRestoreModelACI().fill(panel); - this.buildChangePriorityTaskACI().fill(panel); - this.buildClearPriorityTaskACI().fill(panel); - return panel; - } - - private ActionContributionItem buildClearListACI() { - Action action = new Action("clear list", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.clearTasks(); - } - }; - action.setToolTipText("clear all the tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildChangePriorityTaskACI() { - Action action = new Action("change priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.changePriorityTask(); - } - }; - action.setToolTipText("change the priority task"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearPriorityTaskACI() { - Action action = new Action("clear priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.clearPriorityTask(); - } - }; - action.setToolTipText("clear the priority task"); - return new ActionContributionItem(action); - } - - private void buildAddRemoveTaskPanel(Composite parent, Control clearButton) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(clearButton); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control addButton = this.buildAddButton(panel); - Control removeButton = this.buildRemoveButton(panel); - this.buildTaskTextField(panel, addButton, removeButton); - } - - // is there a better way to associate an ACI with form data? - private Control buildAddButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(0, 50); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildAddACI().fill(panel); - return panel; - } - - private ActionContributionItem buildAddACI() { - Action action = new Action("add", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.addTask(); - } - }; - action.setToolTipText("add a task with the name in the entry field"); - return new ActionContributionItem(action); - } - - // is there a better way to associate an ACI with form data? - private Control buildRemoveButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -50); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildRemoveACI().fill(panel); - return panel; - } - - private ActionContributionItem buildRemoveACI() { - Action action = new Action("remove", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.removeTask(); - } - }; - action.setToolTipText("remove the task with the name in the entry field"); - return new ActionContributionItem(action); - } - - private void buildTaskTextField(Composite parent, Control addButton, Control removeButton) { - this.taskTextField = new Text(parent, SWT.SINGLE | SWT.BORDER); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(addButton); - fd.right = new FormAttachment(removeButton); - this.taskTextField.setLayoutData(fd); - } - - private String taskTextFieldText() { - return this.taskTextField.getText(); - } - - void addTask() { - String taskText = this.taskTextFieldText(); - if (taskText.length() != 0) { - this.taskList.addTask(taskText); - } - } - - void removeTask() { - String task = this.taskTextFieldText(); - if (task.length() != 0) { - this.taskList.removeTask(task); - } - } - - void clearTasks() { - this.taskList.clearTasks(); - } - - void clearModel() { - this.taskListHolder.setValue(null); - } - - void restoreModel() { - this.taskListHolder.setValue(this.taskList); - } - - void changePriorityTask() { - boolean found = false; - for (Task task : this.taskList.getTasks()) { - if (this.taskList.getPriorityTask() == task) { - found = true; - } else { - if (found) { - this.taskList.setPriorityTask(task); - return; - } - } - } - Iterator<Task> tasks = this.taskList.tasks(); - if (tasks.hasNext()) { - this.taskList.setPriorityTask(tasks.next()); - } - } - - void clearPriorityTask() { - this.taskList.setPriorityTask(null); - } - - - // ********** TaskList ********** - - // note absence of validation... - public static class TaskList extends AbstractModel { - private final List<String> taskNames = new ArrayList<String>(); - public static final String TASK_NAMES_LIST = "taskNames"; - private final List<Task> tasks = new ArrayList<Task>(); - public static final String TASKS_LIST = "tasks"; - private String priorityTaskName = null; - public static final String PRIORITY_TASK_NAME_PROPERTY = "priorityTaskName"; - private Task priorityTask = null; - public static final String PRIORITY_TASK_PROPERTY = "priorityTask"; - public TaskList() { - super(); - } - public ListIterator<String> taskNames() { - return this.taskNames.listIterator(); - } - public Iterable<Task> getTasks() { - return this.tasks; - } - public ListIterator<Task> tasks() { - return this.tasks.listIterator(); - } - public String getPriorityTaskName() { - return this.priorityTaskName; - } - public Task getPriorityTask() { - return this.priorityTask; - } - public Task addTask(String taskName) { - this.addItemToList(taskName, this.taskNames, TASK_NAMES_LIST); - Task task = new Task(taskName); - this.addItemToList(task, this.tasks, TASKS_LIST); - return task; - } - public void removeTask(String taskName) { - int index = this.taskNames.indexOf(taskName); - if (index != -1) { - Task task = this.tasks.get(index); - if (task == this.priorityTask) { - this.setPriorityTask(null); - } - // assume the indexes match... - this.removeItemFromList(index, this.taskNames, TASK_NAMES_LIST); - this.removeItemFromList(index, this.tasks, TASKS_LIST); - } - } - public void clearTasks() { - this.setPriorityTask(null); - this.clearList(this.taskNames, TASK_NAMES_LIST); - this.clearList(this.tasks, TASKS_LIST); - } - private void setPriorityTaskName(String priorityTaskName) { - String old = this.priorityTaskName; - this.priorityTaskName = priorityTaskName; - this.firePropertyChanged(PRIORITY_TASK_NAME_PROPERTY, old, priorityTaskName); - } - public void setPriorityTask(Task priorityTask) { - Task old = this.priorityTask; - this.priorityTask = priorityTask; - this.firePropertyChanged(PRIORITY_TASK_PROPERTY, old, priorityTask); - this.setPriorityTaskName((priorityTask == null) ? null : priorityTask.getName()); - } - } - - - // ********** Task ********** - - public static class Task extends AbstractModel implements Displayable { - private String name; - private int instanceCount; - private static int INSTANCE_COUNT = 1; - public Task(String name) { - this.name = name; - this.instanceCount = INSTANCE_COUNT++; - } - public String displayString() { - return this.name + ": " + this.instanceCount; - } - public int compareTo(Displayable o) { - return DEFAULT_COMPARATOR.compare(this, o); - } - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name); - } - @Override - public String toString() { - return this.displayString(); - } - } - - public interface Displayable extends Model, Comparable<Displayable> { - - String displayString(); - String DISPLAY_STRING_PROPERTY = "displayString"; - - - // ********** helper implementations ********** - - Collator DEFAULT_COLLATOR = Collator.getInstance(); - - Comparator<Displayable> DEFAULT_COMPARATOR = - new Comparator<Displayable>() { - public int compare(Displayable d1, Displayable d2) { - // disallow duplicates based on object identity - if (d1 == d2) { - return 0; - } - - // first compare display strings using the default collator - int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString()); - if (result != 0) { - return result; - } - - // then compare using object-id - result = System.identityHashCode(d1) - System.identityHashCode(d2); - if (result != 0) { - return result; - } - - // It's unlikely that we get to this point; but, just in case, we will return -1. - // Unfortunately, this introduces some mild unpredictability to the sort order - // (unless the objects are always passed into this method in the same order). - return -1; // if all else fails, indicate that o1 < o2 - } - @Override - public String toString() { - return "Displayable.DEFAULT_COMPARATOR"; - } - }; - - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java deleted file mode 100644 index 1cb0d57c62..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java +++ /dev/null @@ -1,626 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import java.text.Collator; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -/** - * Play around with a set of list boxes. - */ -@SuppressWarnings("nls") -public class ListBoxModelBindingUITest - extends ApplicationWindow -{ - final TaskList taskList; - private final WritablePropertyValueModel<TaskList> taskListHolder; - private Text taskTextField; - - public static void main(String[] args) throws Exception { - Window window = new ListBoxModelBindingUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private ListBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.taskList = new TaskList(); - this.taskListHolder = new SimplePropertyValueModel<TaskList>(this.taskList); - this.taskList.addTask("swim"); - this.taskList.addTask("bike"); - this.taskList.addTask("run"); - Task rest = this.taskList.addTask("rest"); - this.taskList.addPriorityTask(rest); - Task repeat = this.taskList.addTask("repeat"); - this.taskList.addPriorityTask(repeat); - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(800, 400); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control taskListPanel = this.buildTaskListPanel(mainPanel); - this.buildControlPanel(mainPanel, taskListPanel); - return mainPanel; - } - - private Control buildTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -30); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - this.buildPrimitiveTaskListPanel(panel); - this.buildObjectTaskListPanel(panel); - - return panel; - } - - private void buildPrimitiveTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(50); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedPrimitiveListPanel(panel); - this.buildStandardSortedPrimitiveListPanel(panel); - this.buildCustomSortedPrimitiveListPanel(panel); - } - - private void buildObjectTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(50); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedObjectListPanel(panel); - this.buildStandardSortedObjectListPanel(panel); - this.buildCustomSortedObjectListPanel(panel); - } - - private void buildUnsortedPrimitiveListPanel(Composite parent) { - this.buildListPanel(parent, "primitive unsorted", this.buildUnsortedPrimitiveListModel(), new SimpleCollectionValueModel<String>()); - } - - private void buildStandardSortedPrimitiveListPanel(Composite parent) { - this.buildListPanel(parent, "primitive sorted", this.buildStandardSortedPrimitiveListModel(), new SimpleCollectionValueModel<String>()); - } - - private void buildCustomSortedPrimitiveListPanel(Composite parent) { - this.buildListPanel(parent, "primitive reverse sorted", this.buildCustomSortedPrimitiveListModel(), new SimpleCollectionValueModel<String>()); - } - - private void buildUnsortedObjectListPanel(Composite parent) { - this.buildListPanel(parent, "object unsorted", this.buildUnsortedObjectListModel(), this.buildPriorityTaskListAdapter()); - } - - private void buildStandardSortedObjectListPanel(Composite parent) { - this.buildListPanel(parent, "object sorted", this.buildStandardSortedObjectListModel(), this.buildPriorityTaskListAdapter()); - } - - private void buildCustomSortedObjectListPanel(Composite parent) { - this.buildListPanel(parent, "object reverse sorted", this.buildCustomSortedObjectListModel(), this.buildPriorityTaskListAdapter()); - } - - private ListValueModel<String> buildUnsortedPrimitiveListModel() { - return this.buildPrimitiveTaskListAdapter(); - } - - private ListValueModel<String> buildStandardSortedPrimitiveListModel() { - return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter()); - } - - private ListValueModel<String> buildCustomSortedPrimitiveListModel() { - return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator()); - } - - private ListValueModel<Task> buildUnsortedObjectListModel() { - return this.buildObjectTaskListAdapter(); - } - - private ListValueModel<Task> buildStandardSortedObjectListModel() { - return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter()); - } - - private ListValueModel<Task> buildCustomSortedObjectListModel() { - return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter(), this.buildCustomTaskComparator()); - } - - private <E> org.eclipse.swt.widgets.List buildListPanel(Composite parent, String label, ListValueModel<E> model, WritableCollectionValueModel<E> selectedItemsModel) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FormLayout()); - - Label listLabel = new Label(panel, SWT.LEFT | SWT.VERTICAL); - listLabel.setText(label); - FormData fd = new FormData(); - fd.top = new FormAttachment(0, 3); - fd.bottom = new FormAttachment(0, 20); - fd.left = new FormAttachment(0, 5); - fd.right = new FormAttachment(100); - listLabel.setLayoutData(fd); - - org.eclipse.swt.widgets.List listBox = new org.eclipse.swt.widgets.List(panel, SWT.MULTI | SWT.BORDER); - fd = new FormData(); - fd.top = new FormAttachment(listLabel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - listBox.setLayoutData(fd); - SWTTools.bind(model, selectedItemsModel, listBox); // use #toString() - return listBox; - } - - private Comparator<String> buildCustomStringComparator() { - return new Comparator<String>() { - public int compare(String s1, String s2) { - return s2.compareTo(s1); - } - }; - } - - private Comparator<Task> buildCustomTaskComparator() { - return new Comparator<Task>() { - public int compare(Task to1, Task to2) { - return to2.compareTo(to1); - } - }; - } - - private ListValueModel<String> buildPrimitiveTaskListAdapter() { - return new ListAspectAdapter<TaskList, String>(this.taskListHolder, TaskList.TASK_NAMES_LIST) { - @Override - protected ListIterator<String> listIterator_() { - return this.subject.taskNames(); - } - }; - } - - private ListValueModel<Task> buildObjectTaskListAdapter() { - return new ListAspectAdapter<TaskList, Task>(this.taskListHolder, TaskList.TASKS_LIST) { - @Override - protected ListIterator<Task> listIterator_() { - return this.subject.tasks(); - } - }; - } - - private WritableCollectionValueModel<Task> buildPriorityTaskListAdapter() { - return new PriorityTaskListAdapter(this.taskListHolder); - } - - static class PriorityTaskListAdapter - extends CollectionAspectAdapter<TaskList, Task> - implements WritableCollectionValueModel<Task> - { - PriorityTaskListAdapter(WritablePropertyValueModel<TaskList> taskListHolder) { - super(taskListHolder, TaskList.PRIORITY_TASKS_COLLECTION); - } - @Override - protected Iterator<Task> iterator_() { - return this.subject.priorityTasks(); - } - public void setValues(Iterable<Task> values) { - this.subject.setPriorityTasks(values); - } - } - - private void buildControlPanel(Composite parent, Control taskListPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(taskListPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control misc = this.buildMiscTaskPanel(panel); - this.buildAddRemoveTaskPanel(panel, misc); - } - - // is there a better way to associate an ACI with form data? - private Control buildMiscTaskPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -400); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildClearListACI().fill(panel); - this.buildClearModelACI().fill(panel); - this.buildRestoreModelACI().fill(panel); - this.buildAddPriorityTaskACI().fill(panel); - this.buildRemovePriorityTaskACI().fill(panel); - this.buildClearPriorityTasksACI().fill(panel); - return panel; - } - - private ActionContributionItem buildClearListACI() { - Action action = new Action("clear list", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.clearTasks(); - } - }; - action.setToolTipText("clear all the tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildAddPriorityTaskACI() { - Action action = new Action("add priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.addPriorityTask(); - } - }; - action.setToolTipText("add a task to the priority tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRemovePriorityTaskACI() { - Action action = new Action("remove priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.removePriorityTask(); - } - }; - action.setToolTipText("remove a task from the priority tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearPriorityTasksACI() { - Action action = new Action("clear priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.clearPriorityTasks(); - } - }; - action.setToolTipText("clear the priority tasks"); - return new ActionContributionItem(action); - } - - private void buildAddRemoveTaskPanel(Composite parent, Control clearButton) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(clearButton); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control addButton = this.buildAddButton(panel); - Control removeButton = this.buildRemoveButton(panel); - this.buildTaskTextField(panel, addButton, removeButton); - } - - // is there a better way to associate an ACI with form data? - private Control buildAddButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(0, 50); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildAddACI().fill(panel); - return panel; - } - - private ActionContributionItem buildAddACI() { - Action action = new Action("add", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.addTask(); - } - }; - action.setToolTipText("add a task with the name in the entry field"); - return new ActionContributionItem(action); - } - - // is there a better way to associate an ACI with form data? - private Control buildRemoveButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -50); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildRemoveACI().fill(panel); - return panel; - } - - private ActionContributionItem buildRemoveACI() { - Action action = new Action("remove", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.removeTask(); - } - }; - action.setToolTipText("remove the task with the name in the entry field"); - return new ActionContributionItem(action); - } - - private void buildTaskTextField(Composite parent, Control addButton, Control removeButton) { - this.taskTextField = new Text(parent, SWT.SINGLE | SWT.BORDER); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(addButton); - fd.right = new FormAttachment(removeButton); - this.taskTextField.setLayoutData(fd); - } - - private String taskTextFieldText() { - return this.taskTextField.getText(); - } - - void addTask() { - String taskText = this.taskTextFieldText(); - if (taskText.length() != 0) { - this.taskList.addTask(taskText); - } - } - - void removeTask() { - String task = this.taskTextFieldText(); - if (task.length() != 0) { - this.taskList.removeTask(task); - } - } - - void clearTasks() { - this.taskList.clearTasks(); - } - - void clearModel() { - this.taskListHolder.setValue(null); - } - - void restoreModel() { - this.taskListHolder.setValue(this.taskList); - } - - void addPriorityTask() { - Iterator<Task> tasks = this.taskList.tasks(); - while (tasks.hasNext()) { - if (this.taskList.addPriorityTask(tasks.next())) { - return; - } - } - } - - void removePriorityTask() { - Iterator<Task> pTasks = this.taskList.priorityTasks(); - if (pTasks.hasNext()) { - this.taskList.removePriorityTask(pTasks.next()); - } - } - - void clearPriorityTasks() { - this.taskList.clearPriorityTasks(); - } - - - // ********** TaskList ********** - - // note absence of validation... - public static class TaskList extends AbstractModel { - private final List<String> taskNames = new ArrayList<String>(); - public static final String TASK_NAMES_LIST = "taskNames"; - private final List<Task> tasks = new ArrayList<Task>(); - public static final String TASKS_LIST = "tasks"; - private final Collection<Task> priorityTasks = new HashSet<Task>(); - public static final String PRIORITY_TASKS_COLLECTION = "priorityTasks"; - public TaskList() { - super(); - } - public ListIterator<String> taskNames() { - return this.taskNames.listIterator(); - } - public ListIterator<Task> tasks() { - return this.tasks.listIterator(); - } - public Iterator<Task> priorityTasks() { - return this.priorityTasks.iterator(); - } - public Task addTask(String taskName) { - this.addItemToList(taskName, this.taskNames, TASK_NAMES_LIST); - Task task = new Task(taskName); - this.addItemToList(task, this.tasks, TASKS_LIST); - return task; - } - public void removeTask(String taskName) { - int index = this.taskNames.indexOf(taskName); - if (index != -1) { - this.removeItemFromList(index, this.taskNames, TASK_NAMES_LIST); - // assume the indexes match... - Task removedTask = this.removeItemFromList(index, this.tasks, TASKS_LIST); - this.removeItemFromCollection(removedTask, this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - } - public void clearTasks() { - this.clearCollection(this.priorityTasks, PRIORITY_TASKS_COLLECTION); - this.clearList(this.taskNames, TASK_NAMES_LIST); - this.clearList(this.tasks, TASKS_LIST); - } - public boolean addPriorityTask(Task task) { - return this.addItemToCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - public void removePriorityTask(Task task) { - this.removeItemFromCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - public void clearPriorityTasks() { - this.clearCollection(this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - public void setPriorityTasks(Iterable<Task> tasks) { - this.priorityTasks.clear(); - CollectionTools.addAll(this.priorityTasks, tasks); - this.fireCollectionChanged(PRIORITY_TASKS_COLLECTION, this.priorityTasks); - } - } - - - // ********** Task ********** - - public static class Task extends AbstractModel implements Displayable { - private String name; - private int instanceCount; - private static int INSTANCE_COUNT = 1; - public Task(String name) { - this.name = name; - this.instanceCount = INSTANCE_COUNT++; - } - public String displayString() { - return this.name + ": " + this.instanceCount; - } - public int compareTo(Displayable o) { - return DEFAULT_COMPARATOR.compare(this, o); - } - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name); - } - @Override - public String toString() { - return this.displayString(); - } - } - - public interface Displayable extends Model, Comparable<Displayable> { - - String displayString(); - String DISPLAY_STRING_PROPERTY = "displayString"; - - - // ********** helper implementations ********** - - Collator DEFAULT_COLLATOR = Collator.getInstance(); - - Comparator<Displayable> DEFAULT_COMPARATOR = - new Comparator<Displayable>() { - public int compare(Displayable d1, Displayable d2) { - // disallow duplicates based on object identity - if (d1 == d2) { - return 0; - } - - // first compare display strings using the default collator - int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString()); - if (result != 0) { - return result; - } - - // then compare using object-id - result = System.identityHashCode(d1) - System.identityHashCode(d2); - if (result != 0) { - return result; - } - - // It's unlikely that we get to this point; but, just in case, we will return -1. - // Unfortunately, this introduces some mild unpredictability to the sort order - // (unless the objects are always passed into this method in the same order). - return -1; // if all else fails, indicate that o1 < o2 - } - @Override - public String toString() { - return "Displayable.DEFAULT_COMPARATOR"; - } - }; - - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java deleted file mode 100644 index 5bd6f16dd2..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java +++ /dev/null @@ -1,252 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -/** - * Play around with a set of entry fields. - */ -@SuppressWarnings("nls") -public class TextFieldModelBindingUITest - extends ApplicationWindow -{ - private final TestModel testModel; - private static final String DEFAULT_NAME = "Scooby Doo"; - private final WritablePropertyValueModel<TestModel> testModelHolder; - private final WritablePropertyValueModel<String> nameHolder; - private final WritablePropertyValueModel<String> allCapsNameHolder; - - - public static void main(String[] args) throws Exception { - Window window = new TextFieldModelBindingUITest(); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private TextFieldModelBindingUITest() { - super(null); - this.testModel = new TestModel(DEFAULT_NAME); - this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel); - this.nameHolder = this.buildNameHolder(this.testModelHolder); - this.allCapsNameHolder = this.buildAllCapsNameHolder(this.testModelHolder); - } - - private WritablePropertyValueModel<String> buildNameHolder(PropertyValueModel<TestModel> vm) { - return new PropertyAspectAdapter<TestModel, String>(vm, TestModel.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.name(); - } - @Override - protected void setValue_(String value) { - this.subject.setName(value); - } - }; - } - - private WritablePropertyValueModel<String> buildAllCapsNameHolder(PropertyValueModel<TestModel> vm) { - return new PropertyAspectAdapter<TestModel, String>(vm, TestModel.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.name().toUpperCase(); - } - @Override - protected void setValue_(String value) { - // do nothing - } - }; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 100); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control textFieldPanel = this.buildTextFieldPanel(mainPanel); - this.buildControlPanel(mainPanel, textFieldPanel); - return mainPanel; - } - - private Control buildTextFieldPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildNameTextField(panel); - this.buildReadOnlyNameTextField(panel); - this.buildAllCapsNameTextField(panel); - - return panel; - } - - private void buildNameTextField(Composite parent) { - Text textField = new Text(parent, SWT.SINGLE); - SWTTools.bind(this.nameHolder, textField); - } - - private void buildReadOnlyNameTextField(Composite parent) { - Text textField = new Text(parent, SWT.SINGLE); - textField.setEnabled(false); - SWTTools.bind(this.nameHolder, textField); - } - - private void buildAllCapsNameTextField(Composite parent) { - Text textField = new Text(parent, SWT.SINGLE); - textField.setEnabled(false); - SWTTools.bind(this.allCapsNameHolder, textField); - } - - private void buildControlPanel(Composite parent, Control checkBoxPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(checkBoxPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildResetNameButton(panel); - this.buildClearModelButton(panel); - this.buildRestoreModelButton(panel); - this.buildPrintModelButton(panel); - } - - private void buildResetNameButton(Composite parent) { - this.buildResetNameACI().fill(parent); - } - - private ActionContributionItem buildResetNameACI() { - Action action = new Action("reset name", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.resetName(); - } - }; - action.setToolTipText("reset name"); - return new ActionContributionItem(action); - } - - void resetName() { - this.testModel.setName(DEFAULT_NAME); - } - - private void buildClearModelButton(Composite parent) { - this.buildClearModelACI().fill(parent); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear model"); - return new ActionContributionItem(action); - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private void buildRestoreModelButton(Composite parent) { - this.buildRestoreModelACI().fill(parent); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore model"); - return new ActionContributionItem(action); - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private void buildPrintModelButton(Composite parent) { - this.buildPrintModelACI().fill(parent); - } - - private ActionContributionItem buildPrintModelACI() { - Action action = new Action("print model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.printModel(); - } - }; - action.setToolTipText("print model"); - return new ActionContributionItem(action); - } - - void printModel() { - System.out.println("name: " + this.testModel.name()); - } - - - // ********** model class ********** - - class TestModel extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - - public TestModel(String name) { - this.name = name; - } - public String name() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - @Override - public String toString() { - return "TestModel(" + this.name + ")"; - } - } - -} diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.classpath b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.classpath deleted file mode 100644 index f8b7c93a43..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.classpath +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <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"> - <accessrules> - <accessrule kind="accessible" pattern="org/eclipse/jpt/common/core/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jpt/common/utility/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jpt/jaxb/core/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jpt/jaxb/eclipselink/core/**"/> - </accessrules> - </classpathentry> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.cvsignore b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.cvsignore deleted file mode 100644 index ba077a4031..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.project b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.project deleted file mode 100644 index 71513f6b6e..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.jaxb.eclipselink.core.tests</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/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.settings/org.eclipse.jdt.core.prefs b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index ee129ed60e..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Thu May 05 17:25:11 EDT 2011 -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/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/META-INF/MANIFEST.MF b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/META-INF/MANIFEST.MF deleted file mode 100644 index e8ceb8908e..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,24 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.jaxb.eclipselink.core.tests;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Localization: plugin -Dali-Comment: jdk 1.6 has the javax.xml.bind annotations -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Bundle-Activator: org.eclipse.jpt.jaxb.eclipselink.core.tests.JptJaxbEclipseLinkCoreTestsPlugin -Bundle-ActivationPolicy: lazy -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jdt.core;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.common.core.tests;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.jaxb.core;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.jaxb.core.tests;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.jaxb.eclipselink.core;bundle-version="[1.0.0,2.0.0)", - org.junit;bundle-version="3.8.0" -Export-Package: org.eclipse.jpt.jaxb.eclipselink.core.tests, - org.eclipse.jpt.jaxb.eclipselink.core.tests.internal, - org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource, - org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/about.html b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/about.html +++ /dev/null @@ -1,34 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<HTML> - -<head> -<title>About</title> -<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> -</head> - -<BODY lang="EN-US"> - -<H3>About This Content</H3> - -<P>May 02, 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/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</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> diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/build.properties b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/build.properties deleted file mode 100644 index 38c93513e7..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/build.properties +++ /dev/null @@ -1,15 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.properties -source.. = src/ -output.. = bin/ diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/plugin.properties b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/plugin.properties deleted file mode 100644 index 583cd43a66..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName=Dali Java Persistence Tools - JAXB EclipseLink Core Tests -providerName=Eclipse Web Tools Platform diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/JptJaxbEclipseLinkCoreTestsPlugin.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/JptJaxbEclipseLinkCoreTestsPlugin.java deleted file mode 100644 index 2d7824687e..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/JptJaxbEclipseLinkCoreTestsPlugin.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. 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: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.eclipselink.core.tests; - -import org.eclipse.core.runtime.Plugin; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.jaxb.core.JaxbProjectManager; -import org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin; -import org.osgi.framework.BundleContext; - -/** - * configure the core to handle events synchronously when we are - * running tests - */ -@SuppressWarnings("nls") -public class JptJaxbEclipseLinkCoreTestsPlugin - extends Plugin { - - private static JptJaxbEclipseLinkCoreTestsPlugin INSTANCE; - - public static final String ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.eclipselink.jar"; - - - public static JptJaxbEclipseLinkCoreTestsPlugin instance() { - return INSTANCE; - } - - public static String eclipseLinkJarName() { - return getSystemProperty(ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY); - } - - private static String getSystemProperty(String propertyName) { - return System.getProperty(propertyName); - } - - - // ********** plug-in implementation ********** - - public JptJaxbEclipseLinkCoreTestsPlugin() { - super(); - if (INSTANCE != null) { - throw new IllegalStateException(); - } - // this convention is *wack*... ~bjv - INSTANCE = this; - } - - - @Override - public void start(BundleContext context) throws Exception { - super.start(context); - JaxbProjectManager jaxbProjectManager = JptJaxbCorePlugin.getProjectManager(); - ReflectionTools.executeMethod(jaxbProjectManager, "handleEventsSynchronously"); - ReflectionTools.executeStaticMethod(JptJaxbCorePlugin.class, "doNotFlushPreferences"); - } - - @Override - public void stop(BundleContext context) throws Exception { - super.stop(context); - } -} diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/JaxbEclipseLinkCoreTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/JaxbEclipseLinkCoreTests.java deleted file mode 100644 index 403948f9b6..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/JaxbEclipseLinkCoreTests.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. 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: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.eclipselink.core.tests.internal; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.JaxbEclipseLinkCoreResourceModelTests; - - -public class JaxbEclipseLinkCoreTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JaxbEclipseLinkCoreTests.class.getPackage().getName()); - suite.addTest(JaxbEclipseLinkCoreResourceModelTests.suite()); - return suite; - } - - - private JaxbEclipseLinkCoreTests() { - super(); - throw new UnsupportedOperationException(); - } -} diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/JaxbEclipseLinkCoreResourceModelTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/JaxbEclipseLinkCoreResourceModelTests.java deleted file mode 100644 index 09d8199946..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/JaxbEclipseLinkCoreResourceModelTests.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. 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: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java.ELJaxbJavaResourceModelTests; - - -public class JaxbEclipseLinkCoreResourceModelTests - extends TestCase { - - public static Test suite() { - TestSuite suite = new TestSuite(JaxbEclipseLinkCoreResourceModelTests.class.getName()); - - suite.addTest(ELJaxbJavaResourceModelTests.suite()); - return suite; - } - - - private JaxbEclipseLinkCoreResourceModelTests() { - super(); - throw new UnsupportedOperationException(); - } -} diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTestCase.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTestCase.java deleted file mode 100644 index 28746a2574..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTestCase.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. 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: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java; - -import org.eclipse.jpt.jaxb.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.NestableAnnotationDefinition; -import org.eclipse.jpt.jaxb.core.tests.internal.resource.java.JavaResourceModelTestCase; -import org.eclipse.jpt.jaxb.eclipselink.core.internal.v2_1.ELJaxb_2_1_PlatformDefinition; -import org.eclipse.jpt.jaxb.eclipselink.core.tests.JptJaxbEclipseLinkCoreTestsPlugin; - - -public class ELJaxbJavaResourceModelTestCase - extends JavaResourceModelTestCase { - - public ELJaxbJavaResourceModelTestCase(String name) { - super(name); - } - - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.javaProject.addJar(JptJaxbEclipseLinkCoreTestsPlugin.eclipseLinkJarName()); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - // nothing as of yet - } - - @Override - protected AnnotationDefinition[] annotationDefinitions() { - return ELJaxb_2_1_PlatformDefinition.instance().getAnnotationDefinitions(); - } - - @Override - protected NestableAnnotationDefinition[] nestableAnnotationDefinitions() { - return ELJaxb_2_1_PlatformDefinition.instance().getNestableAnnotationDefinitions(); - } -} diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTests.java deleted file mode 100644 index 30f9ffe04f..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTests.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. 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: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - - -public class ELJaxbJavaResourceModelTests - extends TestCase { - - public static Test suite() { - TestSuite suite = new TestSuite(ELJaxbJavaResourceModelTests.class.getName()); - suite.addTestSuite(XmlInverseReferenceAnnotationTests.class); - suite.addTestSuite(XmlTransformationAnnotationTests.class); - - return suite; - } - - - private ELJaxbJavaResourceModelTests() { - super(); - throw new UnsupportedOperationException(); - } -} diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlInverseReferenceAnnotationTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlInverseReferenceAnnotationTests.java deleted file mode 100644 index 44b3bcd16b..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlInverseReferenceAnnotationTests.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. 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: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java; - -import java.util.Iterator; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb; -import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.XmlInverseReferenceAnnotation; - - -public class XmlInverseReferenceAnnotationTests - extends ELJaxbJavaResourceModelTestCase { - - public XmlInverseReferenceAnnotationTests(String name) { - super(name); - } - - - private ICompilationUnit createTestXmlInverseReference() - throws Exception { - - return this.createTestType(new DefaultAnnotationWriter() { - - @Override - public Iterator<String> imports() { - return new ArrayIterator<String>(ELJaxb.XML_INVERSE_REFERENCE); - } - - @Override - public void appendIdFieldAnnotationTo(StringBuilder sb) { - sb.append("@XmlInverseReference"); - } - }); - } - - private ICompilationUnit createTestXmlInverseReferenceWithMappedBy() - throws Exception { - - return this.createTestType(new DefaultAnnotationWriter() { - - @Override - public Iterator<String> imports() { - return new ArrayIterator<String>(ELJaxb.XML_INVERSE_REFERENCE); - } - - @Override - public void appendIdFieldAnnotationTo(StringBuilder sb) { - sb.append("@XmlInverseReference(mappedBy = \"foo\")"); - } - }); - } - - private XmlInverseReferenceAnnotation getXmlInverseReferenceAnnotation(JavaResourceAttribute resourceAttribute) { - return (XmlInverseReferenceAnnotation) resourceAttribute.getAnnotation(ELJaxb.XML_INVERSE_REFERENCE); - } - - - public void testGetNull() throws Exception { - ICompilationUnit cu = createTestXmlInverseReference(); - JavaResourceType resourceType = buildJavaResourceType(cu); - JavaResourceField resourceAttribute = getField(resourceType, 0); - XmlInverseReferenceAnnotation annotation = getXmlInverseReferenceAnnotation(resourceAttribute); - - assertTrue(annotation != null); - assertNull(annotation.getMappedBy()); - } - - public void testGetMappedBy() throws Exception { - ICompilationUnit cu = createTestXmlInverseReferenceWithMappedBy(); - JavaResourceType resourceType = buildJavaResourceType(cu); - JavaResourceField resourceAttribute = getField(resourceType, 0); - XmlInverseReferenceAnnotation annotation = getXmlInverseReferenceAnnotation(resourceAttribute); - - assertEquals("foo", annotation.getMappedBy()); - } - - public void testSetMappedBy() throws Exception { - ICompilationUnit cu = createTestXmlInverseReference(); - JavaResourceType resourceType = buildJavaResourceType(cu); - JavaResourceField resourceAttribute = getField(resourceType, 0); - XmlInverseReferenceAnnotation annotation = getXmlInverseReferenceAnnotation(resourceAttribute); - - assertNull(annotation.getMappedBy()); - - annotation.setMappedBy("bar"); - - assertEquals("bar", annotation.getMappedBy()); - assertSourceContains("@XmlInverseReference(mappedBy = \"bar\")", cu); - - annotation.setMappedBy(""); - - assertEquals("", annotation.getMappedBy()); - assertSourceContains("@XmlInverseReference(mappedBy = \"\")", cu); - - annotation.setMappedBy(null); - - assertNull(annotation.getMappedBy()); - assertSourceContains("@XmlInverseReference", cu); - assertSourceDoesNotContain("mappedBy", cu); - } -} diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlTransformationAnnotationTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlTransformationAnnotationTests.java deleted file mode 100644 index ca4c690d39..0000000000 --- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlTransformationAnnotationTests.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. 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: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java; - -import java.util.Iterator; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb; -import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.XmlTransformationAnnotation; - - -public class XmlTransformationAnnotationTests - extends ELJaxbJavaResourceModelTestCase { - - public XmlTransformationAnnotationTests(String name) { - super(name); - } - - - private ICompilationUnit createTestXmlTransformation() - throws Exception { - - return this.createTestType(new DefaultAnnotationWriter() { - - @Override - public Iterator<String> imports() { - return new ArrayIterator<String>(ELJaxb.XML_TRANSFORMATION); - } - - @Override - public void appendIdFieldAnnotationTo(StringBuilder sb) { - sb.append("@XmlTransformation"); - } - }); - } - - private ICompilationUnit createTestXmlTransformationWithOptional() - throws Exception { - - return this.createTestType(new DefaultAnnotationWriter() { - - @Override - public Iterator<String> imports() { - return new ArrayIterator<String>(ELJaxb.XML_TRANSFORMATION); - } - - @Override - public void appendIdFieldAnnotationTo(StringBuilder sb) { - sb.append("@XmlTransformation(optional = true)"); - } - }); - } - - private XmlTransformationAnnotation getXmlTransformationAnnotation(JavaResourceAttribute resourceAttribute) { - return (XmlTransformationAnnotation) resourceAttribute.getAnnotation(ELJaxb.XML_TRANSFORMATION); - } - - - public void testGetNull() throws Exception { - ICompilationUnit cu = createTestXmlTransformation(); - JavaResourceType resourceType = buildJavaResourceType(cu); - JavaResourceField resourceAttribute = getField(resourceType, 0); - XmlTransformationAnnotation annotation = getXmlTransformationAnnotation(resourceAttribute); - - assertTrue(annotation != null); - assertNull(annotation.getOptional()); - } - - public void testGetOptional() throws Exception { - ICompilationUnit cu = createTestXmlTransformationWithOptional(); - JavaResourceType resourceType = buildJavaResourceType(cu); - JavaResourceField resourceAttribute = getField(resourceType, 0); - XmlTransformationAnnotation annotation = getXmlTransformationAnnotation(resourceAttribute); - - assertEquals(Boolean.TRUE, annotation.getOptional()); - } - - public void testSetOptional() throws Exception { - ICompilationUnit cu = createTestXmlTransformation(); - JavaResourceType resourceType = buildJavaResourceType(cu); - JavaResourceField resourceAttribute = getField(resourceType, 0); - XmlTransformationAnnotation annotation = getXmlTransformationAnnotation(resourceAttribute); - - assertNull(annotation.getOptional()); - - annotation.setOptional(Boolean.FALSE); - - assertEquals(Boolean.FALSE, annotation.getOptional()); - assertSourceContains("@XmlTransformation(optional = false)", cu); - - annotation.setOptional(null); - - assertNull(annotation.getOptional()); - assertSourceContains("@XmlTransformation", cu); - assertSourceDoesNotContain("optional", cu); - } -} diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/.project b/jpa/features/org.eclipse.jpt.eclipselink.feature/.project deleted file mode 100644 index f2123ce740..0000000000 --- a/jpa/features/org.eclipse.jpt.eclipselink.feature/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink.feature</name> - <comment>renamed to org.eclipse.jpt.jpa.eclipselink.feature</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project deleted file mode 100644 index d8a03f0b6e..0000000000 --- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink_sdk.feature</name> - <comment>renamed to org.eclipse.jpt.jpa.eclipselink_sdk.feature</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/features/org.eclipse.jpt.feature/.project b/jpa/features/org.eclipse.jpt.feature/.project deleted file mode 100644 index b83e9de317..0000000000 --- a/jpa/features/org.eclipse.jpt.feature/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.feature</name> - <comment>renamed to org.eclipse.jpt.jpa.feature</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/features/org.eclipse.jpt.tests.feature/.project b/jpa/features/org.eclipse.jpt.tests.feature/.project deleted file mode 100644 index 5ee70fa0ef..0000000000 --- a/jpa/features/org.eclipse.jpt.tests.feature/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.tests.feature</name> - <comment>renamed to org.eclipse.jpt.jpa.tests.feature</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/.project b/jpa/features/org.eclipse.jpt_sdk.feature/.project deleted file mode 100644 index 4d523cea52..0000000000 --- a/jpa/features/org.eclipse.jpt_sdk.feature/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt_sdk.feature</name> - <comment>renamed to org.eclipse.jpt.jpa_sdk.feature</comment> -</projectDescription> diff --git a/jpa/plugins/org.eclipse.jpt.branding/.project b/jpa/plugins/org.eclipse.jpt.branding/.project deleted file mode 100644 index 0b315e62ea..0000000000 --- a/jpa/plugins/org.eclipse.jpt.branding/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.branding</name> - <comment>renamed to org.eclipse.jpt.jpa.branding</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/.project b/jpa/plugins/org.eclipse.jpt.core/.project deleted file mode 100644 index fff56584ab..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.core</name> - <comment>renamed to org.eclipse.jpt.jpa.core</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/.project b/jpa/plugins/org.eclipse.jpt.db.ui/.project deleted file mode 100644 index 64a5574ce5..0000000000 --- a/jpa/plugins/org.eclipse.jpt.db.ui/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.db.ui</name> - <comment>renamed to org.eclipse.jpt.jpa.db.ui</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.db/.project b/jpa/plugins/org.eclipse.jpt.db/.project deleted file mode 100644 index 604cfcb4a9..0000000000 --- a/jpa/plugins/org.eclipse.jpt.db/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.db</name> - <comment>renamed to org.eclipse.jpt.jpa.db</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project deleted file mode 100644 index 56cc5af912..0000000000 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink.branding</name> - <comment>renamed to org.eclipse.jpt.jpa.eclipselink.branding</comment> -</projectDescription> diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project deleted file mode 100644 index 1d5359a334..0000000000 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink.core.ddlgen</name> - <comment>renamed to org.eclipse.jpt.jpa.eclipselink.core.ddlgen</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project deleted file mode 100644 index bd14595c75..0000000000 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink.core</name> - <comment>renamed to org.eclipse.jpt.jpa.eclipselink.core</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.jaxb.core.schemagen/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.jaxb.core.schemagen/.project deleted file mode 100644 index 868e21be70..0000000000 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.jaxb.core.schemagen/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink.jaxb.core.schemagen</name> - <comment>renamed to org.eclipse.jpt.jaxb.eclipselink.core.schemagen and moved to jaxb component</comment> -</projectDescription> diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project deleted file mode 100644 index 7a6587657e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink.ui</name> - <comment>renamed to org.eclipse.jpt.jpa.eclipselink.ui</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.gen/.project b/jpa/plugins/org.eclipse.jpt.gen/.project deleted file mode 100644 index 688225a0c1..0000000000 --- a/jpa/plugins/org.eclipse.jpt.gen/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.gen</name> - <comment>renamed to org.eclipse.jpt.jpa.gen</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project b/jpa/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project deleted file mode 100644 index 3d552f89dd..0000000000 --- a/jpa/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.jaxb.core.schemagen</name> - <comment>moved to jaxb component</comment> -</projectDescription> diff --git a/jpa/plugins/org.eclipse.jpt.jaxb.ui/.project b/jpa/plugins/org.eclipse.jpt.jaxb.ui/.project deleted file mode 100644 index 8dc3015b6b..0000000000 --- a/jpa/plugins/org.eclipse.jpt.jaxb.ui/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.jaxb.ui</name> - <comment>moved to jaxb component</comment> -</projectDescription> diff --git a/jpa/plugins/org.eclipse.jpt.ui/.project b/jpa/plugins/org.eclipse.jpt.ui/.project deleted file mode 100644 index 254a17a7d7..0000000000 --- a/jpa/plugins/org.eclipse.jpt.ui/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.ui</name> - <comment>renamed to org.eclipse.jpt.jpa.ui</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.utility/.project b/jpa/plugins/org.eclipse.jpt.utility/.project deleted file mode 100644 index 417751d1f1..0000000000 --- a/jpa/plugins/org.eclipse.jpt.utility/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.utility</name> - <comment>renamed to org.eclipse.jpt.common.utility and moved to common component</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project deleted file mode 100644 index 5eca35f465..0000000000 --- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.core.tests.extension.resource</name> - <comment>renamed to org.eclipse.jpt.jpa.core.tests.extension.resource</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.core.tests/.project b/jpa/tests/org.eclipse.jpt.core.tests/.project deleted file mode 100644 index 5652fd45d3..0000000000 --- a/jpa/tests/org.eclipse.jpt.core.tests/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.core.tests</name> - <comment>renamed to rg.eclipse.jpt.jpa.core.tests</comment> -</projectDescription> diff --git a/jpa/tests/org.eclipse.jpt.db.tests/.project b/jpa/tests/org.eclipse.jpt.db.tests/.project deleted file mode 100644 index a1ffb1d2c4..0000000000 --- a/jpa/tests/org.eclipse.jpt.db.tests/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.db.tests</name> - <comment>renamed to org.eclipse.jpt.jpa.db.tests</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project deleted file mode 100644 index baaef71e6a..0000000000 --- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.eclipselink.core.tests</name> - <comment>renamed to org.eclipse.jpt.jpa.eclipselink.core.tests</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/.project b/jpa/tests/org.eclipse.jpt.gen.tests/.project deleted file mode 100644 index 633d887433..0000000000 --- a/jpa/tests/org.eclipse.jpt.gen.tests/.project +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.gen.tests</name> - <comment>renamed to org.eclipse.jpt.jpa.gen.tests</comment> -</projectDescription>
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath deleted file mode 100644 index 5c128f330d..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <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"> - <accessrules> - <accessrule kind="accessible" pattern="org/eclipse/jpt/common/utility/**"/> - </accessrules> - </classpathentry> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore deleted file mode 100644 index ba077a4031..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.project b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.project deleted file mode 100644 index fdaecf7d3c..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.jpa.db.tests</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/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 486063b88e..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Tue Mar 08 12:08:49 EST 2011 -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/jpa/tests/org.eclipse.jpt.jpa.db.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.db.tests/META-INF/MANIFEST.MF deleted file mode 100644 index 1d7938bd9e..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,19 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.jpa.db.tests -Bundle-Version: 2.0.0.qualifier -Bundle-Activator: org.eclipse.jpt.jpa.db.tests.internal.JptJpaDbTestsPlugin -Bundle-ActivationPolicy: lazy -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)", - org.eclipse.datatools.connectivity;bundle-version="[1.1.0,1.3.0)", - org.eclipse.datatools.connectivity.sqm.core;bundle-version="1.0.1", - org.eclipse.datatools.modelbase.sql;bundle-version="1.0.0", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.jpa.db;bundle-version="[2.0.0,3.0.0)", - org.junit;bundle-version="3.8.0" -Export-Package: org.eclipse.jpt.jpa.db.tests.internal;x-internal:=true, - org.eclipse.jpt.jpa.db.tests.internal.platforms;x-internal:=true diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html b/jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html +++ /dev/null @@ -1,34 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<HTML> - -<head> -<title>About</title> -<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> -</head> - -<BODY lang="EN-US"> - -<H3>About This Content</H3> - -<P>May 02, 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/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</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> diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/build.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/build.properties deleted file mode 100644 index d27ab8f407..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/build.properties +++ /dev/null @@ -1,14 +0,0 @@ -################################################################################ -# Copyright (c) 2007 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -source.. = src/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - plugin.properties diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/derby.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/derby.properties deleted file mode 100644 index 242d156070..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/derby.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional for Derby -userID = -password = - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/derby/lib/derby.jar -jars = - -# the JDBC URL is required for Derby -# url = jdbc:derby:C:/derby/data/testdb;create=true -url = diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/mysql.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/mysql.properties deleted file mode 100644 index d6407deb25..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/mysql.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional, depending on the platform -userID = -password = - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/mysql/mysql-connector-java-5.0.6-bin.jar -jars = - -# the JDBC URL is optional for MySQL -# url = jdbc:mysql://localhost:3306 diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10g.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10g.properties deleted file mode 100644 index 4b911b44e1..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10g.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional, depending on the platform -userID = scott -password = tiger - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/oracle/jdbc/lib/ojdbc5.jar -jars = - -# the JDBC URL is required -# url = jdbc:oracle:thin:@localhost:1521:testdb -url = diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10gXE.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10gXE.properties deleted file mode 100644 index e67c01a28e..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10gXE.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional, depending on the platform -userID = scott -password = tiger - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/oracle/jdbc/lib/ojdbc5.jar -jars = - -# the JDBC URL is required -# url = jdbc:oracle:thin:@localhost:1521:XE -url = diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle9i.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle9i.properties deleted file mode 100644 index 4b911b44e1..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle9i.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional, depending on the platform -userID = scott -password = tiger - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/oracle/jdbc/lib/ojdbc5.jar -jars = - -# the JDBC URL is required -# url = jdbc:oracle:thin:@localhost:1521:testdb -url = diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/postgresql.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/postgresql.properties deleted file mode 100644 index 32fafe463b..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/postgresql.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional, depending on the platform -userID = -password = - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/postgresql/jdbc/postgresql-8.2-505.jdbc3.jar -jars = - -# the JDBC URL is optional for PostgreSQL -# url = jdbc:postgresql diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sqlserver.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sqlserver.properties deleted file mode 100644 index f72b645c52..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sqlserver.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional, depending on the platform -userID = -password = - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/sqlserver/lib/sqljdbc.jar -jars = - -# the JDBC URL is required -# url = jdbc:sqlserver://localhost:1433 -url = diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sybase.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sybase.properties deleted file mode 100644 index 493d5d4ad9..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sybase.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2008 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ - -# Configure the workspace- and database server-specific settings here. - -# user and password are optional, depending on the platform -userID = -password = - -# the JDBC driver JAR(s) must be specified; -# if there are multiple JARs, separate the names with commas -# jars = C:/sybase/lib/jconn3.jar -jars = - -# the JDBC URL is required -# url = jdbc:sybase:Tds:localhost:5000 -url = diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/plugin.properties deleted file mode 100644 index 2c98779595..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/plugin.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2007 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName = JPA DB Tests -providerName = Eclipse.org - diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTests.java deleted file mode 100644 index 9d2efa4996..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTests.java +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal; - -import java.sql.Connection; -import java.sql.DriverManager; - -import junit.framework.TestCase; - -/** - * These aren't tests. They are just an easy way to dump JDBC metadata to the - * console. - */ -@SuppressWarnings("nls") -public class JDBCTests extends TestCase { - - public JDBCTests(String name) { - super(name); - } - - public void testDerby() throws Exception { - this.dumpMetaData(DERBY); - } - - public void testMySQL() throws Exception { - this.dumpMetaData(MYSQL); - } - - public void testOracle() throws Exception { - this.dumpMetaData(ORACLE); - } - - public void testPostgreSQL() throws Exception { - this.dumpMetaData(POSTGRESQL); - } - - public void testSybase() throws Exception { - this.dumpMetaData(SYBASE); - } - - protected void dumpMetaData(ConnectionConfig config) throws Exception { - System.out.println("***** PLATFORM: " + config.platformName + " *****"); - System.out.println(); - Class.forName(config.driverClassName); - Connection connection = DriverManager.getConnection(this.buildURL(config), config.user, config.password); - System.out.println("CATALOGS:"); - JDBCTools.dump(connection.getMetaData().getCatalogs()); - System.out.println(); - System.out.println("SCHEMATA:"); - JDBCTools.dump(connection.getMetaData().getSchemas()); - connection.close(); - System.out.println(); - } - - protected String buildURL(ConnectionConfig config) { - return "jdbc:" + config.databaseURL; - } - - protected static final ConnectionConfig DERBY = - new ConnectionConfig( - "Derby", - "org.apache.derby.jdbc.EmbeddedDriver", - "derby:C:/derby/data/test", - null, - null - ); - - protected static final ConnectionConfig MYSQL = - new ConnectionConfig( - "MySQL", - "com.mysql.jdbc.Driver", - "mysql://localhost:3306", - "root", - "oracle" - ); - - protected static final ConnectionConfig ORACLE = - new ConnectionConfig( - "Oracle", - "oracle.jdbc.OracleDriver", - "oracle:thin:@localhost:1521:orcl", - "scott", - "tiger" - ); - - protected static final ConnectionConfig POSTGRESQL = - new ConnectionConfig( - "PostgreSQL", - "org.postgresql.Driver", - "postgresql:postgres", - "postgres", - "oracle" - ); - - // the Sybase server must be configured explicitly to "localhost" - // in the config file [SYBASE]/ini/sql.ini - protected static final ConnectionConfig SYBASE = - new ConnectionConfig( - "Sybase", - "com.sybase.jdbc3.jdbc.SybDriver", - "sybase:Tds:localhost:5000", - "sa", - "oracle" - ); - - protected static class ConnectionConfig { - protected final String platformName; - protected final String driverClassName; - protected final String databaseURL; - protected final String user; - protected final String password; - protected ConnectionConfig( - String platformName, - String driverClassName, - String databaseURL, - String user, - String password - ) { - super(); - this.platformName = platformName; - this.driverClassName = driverClassName; - this.databaseURL = databaseURL; - this.user = user; - this.password = password; - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTools.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTools.java deleted file mode 100644 index 4f8d879705..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTools.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal; - -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.jpt.common.utility.internal.iterators.ResultSetIterator; - -@SuppressWarnings("nls") -public class JDBCTools { - - public static void dump(Connection connection, String sql) throws SQLException { - dump(execute(connection, sql)); - } - - public static void dump(ResultSet resultSet) throws SQLException { - PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out)); - // synchronize the console so everything is contiguous - synchronized (System.out) { - dumpOn(resultSet, pw); - } - pw.flush(); - } - - public static void dumpOn(ResultSet resultSet, PrintWriter pw) throws SQLException { - ArrayList<HashMap<String, Object>> maps = convertToMaps(resultSet); - for (Iterator<HashMap<String, Object>> mapStream = maps.iterator(); mapStream.hasNext(); ) { - for (Iterator<Map.Entry<String, Object>> entryStream = mapStream.next().entrySet().iterator(); entryStream.hasNext(); ) { - Map.Entry<String, Object> entry = entryStream.next(); - pw.print(entry.getKey()); - pw.print(" = "); - pw.print(entry.getValue()); - pw.println(); - } - if (mapStream.hasNext()) { - pw.println(); - } - } - pw.println("total rows: " + maps.size()); - } - - public static ArrayList<HashMap<String, Object>> convertToMaps(Connection connection, String sql) throws SQLException { - return convertToMaps(execute(connection, sql)); - } - - public static ResultSet execute(Connection connection, String sql) throws SQLException { - Statement statement = connection.createStatement(); - statement.execute(sql); - ResultSet resultSet = statement.getResultSet(); - statement.close(); - return resultSet; - } - - public static ArrayList<HashMap<String, Object>> convertToMaps(ResultSet resultSet) throws SQLException { - ArrayList<HashMap<String, Object>> rows = new ArrayList<HashMap<String, Object>>(); - for (Iterator<HashMap<String, Object>> stream = buildMapIterator(resultSet); stream.hasNext(); ) { - rows.add(stream.next()); - } - return rows; - } - - public static Iterator<HashMap<String, Object>> buildMapIterator(ResultSet resultSet) throws SQLException { - return new ResultSetIterator<HashMap<String, Object>>(resultSet, new MapResultSetIteratorAdapter(buildColumnNames(resultSet))); - } - - public static String[] buildColumnNames(ResultSet resultSet) throws SQLException { - String[] names = new String[resultSet.getMetaData().getColumnCount()]; - for (int i = 0; i < names.length; i++) { - names[i] = resultSet.getMetaData().getColumnName(i + 1); // NB: ResultSet index/subscript is 1-based - } - return names; - } - - public static class MapResultSetIteratorAdapter implements ResultSetIterator.Adapter<HashMap<String, Object>> { - private final String[] columnNames; - public MapResultSetIteratorAdapter(String[] columnNames) { - super(); - this.columnNames = columnNames; - } - public HashMap<String, Object> buildNext(ResultSet rs) throws SQLException { - HashMap<String, Object> map = new HashMap<String, Object>(this.columnNames.length); - for (int i = 0; i < this.columnNames.length; i++) { - map.put(this.columnNames[i], rs.getObject(i + 1)); // NB: ResultSet index/subscript is 1-based - } - return map; - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTests.java deleted file mode 100644 index 937b8c2b8c..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.jpa.db.tests.internal.platforms.AllPlatformTests; - -/** - * JPT DB Tests - */ -public class JptJpaDbTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptJpaDbTests.class.getPackage().getName()); - - suite.addTest( AllPlatformTests.suite()); - - return suite; - } - - private JptJpaDbTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTestsPlugin.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTestsPlugin.java deleted file mode 100644 index f42832e95f..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTestsPlugin.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal; - -import org.eclipse.core.runtime.Plugin; -import org.osgi.framework.BundleContext; - -/** - * JptJpaDbTestsPlugin - */ -public class JptJpaDbTestsPlugin extends Plugin { - - // The shared instance - private static JptJpaDbTestsPlugin INSTANCE; - - public static final String BUNDLE_ID = "org.eclipse.jpt.jpa.db.tests"; //$NON-NLS-1$ - - /** - * Returns the shared instance - */ - public static JptJpaDbTestsPlugin instance() { - return INSTANCE; - } - - /** - * The constructor - */ - public JptJpaDbTestsPlugin() { - super(); - INSTANCE = this; - } - - /** - * This method is called upon plug-in activation - */ - @Override - public void start(BundleContext context) throws Exception { - super.start(context); - } - - /** - * This method is called when the plug-in is stopped - */ - @Override - public void stop(BundleContext context) throws Exception { - INSTANCE = null; - super.stop(context); - } -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/AllPlatformTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/AllPlatformTests.java deleted file mode 100644 index 042e954e6a..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/AllPlatformTests.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class AllPlatformTests { - - public static Test suite() { - TestSuite suite = new TestSuite(AllPlatformTests.class.getPackage().getName()); - - suite.addTestSuite(DerbyTests.class); - suite.addTestSuite(MySQLTests.class); - suite.addTestSuite(Oracle10gTests.class); -// suite.addTestSuite(Oracle10gXETests.class); -// suite.addTestSuite(Oracle9iTests.class); - suite.addTestSuite(PostgreSQLTests.class); -// suite.addTestSuite(SQLServerTests.class); - suite.addTestSuite(SybaseTests.class); - - return suite; - } - - private AllPlatformTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java deleted file mode 100644 index 6cb7b60962..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java +++ /dev/null @@ -1,1030 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - -import java.io.File; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.net.URL; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import junit.framework.TestCase; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.datatools.connectivity.ConnectionProfileException; -import org.eclipse.datatools.connectivity.IConnectionProfile; -import org.eclipse.datatools.connectivity.ProfileManager; -import org.eclipse.datatools.connectivity.drivers.IDriverMgmtConstants; -import org.eclipse.datatools.connectivity.drivers.IPropertySet; -import org.eclipse.datatools.connectivity.drivers.PropertySetImpl; -import org.eclipse.datatools.connectivity.drivers.XMLFileManager; -import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants; -import org.eclipse.datatools.connectivity.internal.ConnectivityPlugin; -import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject; -import org.eclipse.jpt.common.utility.IndentingPrintWriter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ResultSetIterator; -import org.eclipse.jpt.jpa.db.Catalog; -import org.eclipse.jpt.jpa.db.Column; -import org.eclipse.jpt.jpa.db.ConnectionListener; -import org.eclipse.jpt.jpa.db.ConnectionProfile; -import org.eclipse.jpt.jpa.db.ConnectionProfileFactory; -import org.eclipse.jpt.jpa.db.ConnectionProfileListener; -import org.eclipse.jpt.jpa.db.Database; -import org.eclipse.jpt.jpa.db.DatabaseIdentifierAdapter; -import org.eclipse.jpt.jpa.db.ForeignKey; -import org.eclipse.jpt.jpa.db.JptJpaDbPlugin; -import org.eclipse.jpt.jpa.db.Schema; -import org.eclipse.jpt.jpa.db.SchemaContainer; -import org.eclipse.jpt.jpa.db.Sequence; -import org.eclipse.jpt.jpa.db.Table; -import org.eclipse.jpt.jpa.db.tests.internal.JptJpaDbTestsPlugin; - -/** - * Base class for testing DTP wrappers on various databases. - */ -@SuppressWarnings("nls") -public abstract class DTPPlatformTests extends TestCase { - - /** - * The platform properties are loaded from a Java properties file in the - * 'org.eclipse.jpt.jpa.db.tests/config' directory. Each database platform has - * its own properties file (e.g. 'derby.properties'). - */ - private Properties platformProperties; - - /** - * This is the Dali connection profile wrapper. - */ - protected ConnectionProfile connectionProfile; - - - // ********** constants ********** - - private static final String PLATFORM_CONFIG_DIRECTORY = "config"; - - private static final String DB_USER_ID_PROPERTY = "userID"; - private static final String DB_USER_ID_DEFAULT = "user"; - - private static final String DB_PASSWORD_PROPERTY = "password"; - private static final String DB_PASSWORD_DEFAULT = ""; - - private static final String DB_DRIVER_JARS_PROPERTY = "jars"; - // required - no default - - private static final String DB_URL_PROPERTY = "url"; - // required - no default - - - - // ********** constructor ********** - - protected DTPPlatformTests(String name) { - super(name); - } - - - // ********** set-up/tear-down ********** - - @Override - protected void setUp() throws Exception { - super.setUp(); - - this.platformProperties = this.loadPlatformProperties(); - this.buildDTPDriverDefinitionFile(); - this.buildDTPConnectionProfile(); - this.connectionProfile = this.getConnectionProfileFactory().buildConnectionProfile(this.getProfileName(), DatabaseIdentifierAdapter.Default.instance()); - } - - @Override - protected void tearDown() throws Exception { - this.connectionProfile = null; - this.platformProperties = null; - - super.tearDown(); - } - - // ***** platform properties file - private Properties loadPlatformProperties() throws IOException { - Properties p = new Properties(); - p.load(this.buildPlatformPropertiesFileURL().openStream()); - return p; - } - - private URL buildPlatformPropertiesFileURL() { - return Platform.getBundle(this.getTestPluginBundleID()).getEntry(this.getPlatformPropertiesFilePath()); - } - - private String getTestPluginBundleID() { - return JptJpaDbTestsPlugin.BUNDLE_ID; - } - - private String getPlatformPropertiesFilePath() { - return this.getPlatformPropertiesDirectoryName() + '/' + this.getPlatformPropertiesFileName(); - } - - private String getPlatformPropertiesDirectoryName() { - return PLATFORM_CONFIG_DIRECTORY; - } - - /** - * Each database platform has a separate properties file in the 'config' - * directory that must be customized by whomever is executing the tests. - */ - protected abstract String getPlatformPropertiesFileName(); - - // ***** driver definition file - private void buildDTPDriverDefinitionFile() throws CoreException { - XMLFileManager.setStorageLocation(this.getDTPDriverDefinitionLocation()); - XMLFileManager.setFileName(this.getDTPDriverFileName()); - - IPropertySet[] sets = XMLFileManager.loadPropertySets(); - for (IPropertySet set : sets) { - if (set.getID().equals(this.getDriverDefinitionID())) { - return; // property sets live across tests - } - } - - XMLFileManager.saveNamedPropertySet(this.buildDTPDriverDefinitionPropertySets()); - - // verify the file was created: - File driverDefinitioneFile = this.getDTPDriverDefinitionLocation().append(this.getDTPDriverFileName()).toFile(); - assertTrue(driverDefinitioneFile.exists()); - } - - private IPath getDTPDriverDefinitionLocation() { - return ConnectivityPlugin.getDefault().getStateLocation(); - } - - private String getDTPDriverFileName() { - return IDriverMgmtConstants.DRIVER_FILE; - } - - private IPropertySet[] buildDTPDriverDefinitionPropertySets() { - IPropertySet[] propertySets = new IPropertySet[1]; - PropertySetImpl propertySet = new PropertySetImpl(this.getDriverName(), this.getDriverDefinitionID()); - propertySet.setProperties(this.getDriverDefinitionID(), this.buildDTPDriverDefinitionProperties()); - propertySets[0] = propertySet; - return propertySets; - } - - protected abstract String getDriverName(); - - protected abstract String getDriverDefinitionID(); - - private Properties buildDTPDriverDefinitionProperties() { - Properties p = new Properties(); - p.setProperty(ConnectionProfile.DRIVER_DEFINITION_TYPE_PROP_ID, this.getDriverDefinitionType()); - p.setProperty(ConnectionProfile.DRIVER_JAR_LIST_PROP_ID, this.getJDBCDriverJarList()); - p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.getDatabaseVendor()); - p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.getDatabaseVersion()); - p.setProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.getDriverClass()); - p.setProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID, this.getJDBCURL()); - p.setProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID, this.getUserID()); - p.setProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID, this.getPassword()); - return p; - } - - protected abstract String getDriverDefinitionType(); - - /** - * The JAR list is workspace-specific and is set in the properties file. - */ - private String getJDBCDriverJarList() { - return this.getRequiredPlatformProperty(DB_DRIVER_JARS_PROPERTY); - } - - protected abstract String getDatabaseVendor(); - - protected abstract String getDatabaseVersion(); - - protected abstract String getDriverClass(); - - /** - * The database URL is workspace-specific and is set in the properties file - * for some databases. - */ - private String getJDBCURL() { - return this.platformProperties.getProperty(DB_URL_PROPERTY, this.getDefaultJDBCURL()); - } - - protected String getDefaultJDBCURL() { - return ""; - } - - /** - * The user ID is optional and can be set in the properties file. - */ - protected String getUserID() { - return this.platformProperties.getProperty(DB_USER_ID_PROPERTY, DB_USER_ID_DEFAULT); - } - - /** - * The password is optional and can be set in the properties file. - */ - private String getPassword() { - return this.platformProperties.getProperty(DB_PASSWORD_PROPERTY, DB_PASSWORD_DEFAULT); - } - - // ***** DTP connection profile - private void buildDTPConnectionProfile() throws ConnectionProfileException { - if (this.getDTPProfileManager().getProfileByName(this.getProfileName()) != null) { - return; // profiles live across tests - } - this.createProfile(this.getProfileName()); - assertNotNull(this.getDTPProfileManager().getProfileByName(this.getProfileName())); - } - - protected void createProfile(String profileName) throws ConnectionProfileException { - this.getDTPProfileManager().createProfile( - profileName, - this.getProfileDescription(), - this.getProviderID(), - this.buildDTPConnectionProfileProperties() - ); - } - - protected abstract String getProfileName(); - - protected abstract String getProfileDescription(); - - protected String getProviderID() { - return ConnectionProfile.CONNECTION_PROFILE_TYPE; - } - - protected Properties buildDTPConnectionProfileProperties() { - Properties p = new Properties(); - p.setProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID, this.getUserID()); - p.setProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID, this.getPassword()); - p.setProperty(ConnectionProfile.DRIVER_DEFINITION_PROP_ID, this.getDriverDefinitionID()); - - p.setProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.getDriverClass()); - p.setProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID, this.getJDBCURL()); - p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.getDatabaseVendor()); - p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.getDatabaseVersion()); - - p.setProperty(ConnectionProfile.DATABASE_SAVE_PWD_PROP_ID, this.passwordIsSaved()); - return p; - } - - private String passwordIsSaved() { - return "true"; - } - - - // ********** tests ********** - - public void testConnectionProfileListener() throws ConnectionProfileException { - TestConnectionProfileListener listener = new TestConnectionProfileListener(); - this.getConnectionProfileFactory().addConnectionProfileListener(listener); - - String cpName1 = this.getProfileName() + "1"; - this.createProfile(cpName1); - IConnectionProfile dtpCP = this.getDTPProfileManager().getProfileByName(cpName1); - assertNotNull(dtpCP); - - assertEquals(cpName1, listener.addedName); - listener.clear(); - - String cpName2 = this.getProfileName() + "2"; - this.getDTPProfileManager().modifyProfile(dtpCP, cpName2, null); - assertEquals(cpName1, listener.renamedOldName); - assertEquals(cpName2, listener.renamedNewName); - listener.clear(); - - ConnectionProfile cp = this.getConnectionProfileFactory().buildConnectionProfile(cpName2); - assertNotNull(cp); - - this.getDTPProfileManager().deleteProfile(dtpCP); - assertEquals(cpName2, listener.removedName); - listener.clear(); - - cp = this.getConnectionProfileFactory().buildConnectionProfile(cpName2); - assertNull(cp); - - this.getConnectionProfileFactory().removeConnectionProfileListener(listener); - } - - public void testName() { - assertEquals(this.getProfileName(), this.connectionProfile.getName()); - } - - public void testConnection() throws Exception { - assertTrue(this.connectionProfile.isInactive()); - assertTrue(this.connectionProfile.isDisconnected()); - this.connectionProfile.connect(); - assertTrue(this.connectionProfile.isActive()); - assertTrue(this.connectionProfile.isConnected()); - - this.verifyDatabaseVersionNumber(); - this.verifyDatabaseVendor(); - this.verifyDatabaseContent(); - - this.connectionProfile.disconnect(); - assertTrue(this.connectionProfile.isInactive()); - assertTrue(this.connectionProfile.isDisconnected()); - } - - private void verifyDatabaseVersionNumber() { - Database database = this.connectionProfile.getDatabase(); - assertNotNull(database); - - String actual = database.getVersion(); - String expected = this.getDatabaseVersion(); - String errorMessage = "expected: " + expected + " - actual: " + actual; - // partial match is good enough - assertTrue(errorMessage, actual.indexOf(expected) != -1); - } - - private void verifyDatabaseVendor() { - Database database = this.connectionProfile.getDatabase(); - String actual = database.getVendorName(); - String expected = this.getDatabaseVendor(); - assertEquals(expected, actual); - } - - private void verifyDatabaseContent() { - Database database = this.connectionProfile.getDatabase(); - assertTrue(database.getSchemataSize() >= 0); - - Schema schema = database.getDefaultSchema(); - if (schema != null) { - if (schema.getTablesSize() > 0) { - Table table = schema.getTables().iterator().next(); - assertTrue(table.getColumnsSize() >= 0); - assertTrue(table.getPrimaryKeyColumnsSize() >= 0); - assertTrue(table.getForeignKeysSize() >= 0); - } - } - } - - protected abstract boolean executeOfflineTests(); - - public final void testOffline() { - if ( ! this.executeOfflineTests()) { - return; - } - if ( ! this.connectionProfile.supportsWorkOfflineMode()) { - return; - } - - this.prepareForOfflineWork(); - - IStatus status = this.connectionProfile.workOffline(); - assertTrue(status.isOK()); - assertTrue(this.connectionProfile.isActive()); - assertTrue(this.connectionProfile.isWorkingOffline()); - - this.connectionProfile.disconnect(); - assertTrue(this.connectionProfile.isInactive()); - assertTrue(this.connectionProfile.isDisconnected()); - } - - protected void prepareForOfflineWork() { - if ( ! this.connectionProfile.canWorkOffline()) { - this.connectionProfile.connect(); - IStatus status = this.connectionProfile.saveWorkOfflineData(); - assertTrue(status.isOK()); - this.connectionProfile.disconnect(); - assertTrue(this.connectionProfile.canWorkOffline()); - } - } - - public void testConnectionListenerConnect() { - assertTrue(this.connectionProfileHasNoListeners()); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - assertTrue(this.connectionProfileHasAnyListeners()); - - this.connectionProfile.connect(); - assertSame(this.connectionProfile, listener.openedProfile); - listener.clear(); - - this.connectionProfile.disconnect(); - assertSame(this.connectionProfile, listener.okToCloseProfile); - assertSame(this.connectionProfile, listener.aboutToCloseProfile); - assertSame(this.connectionProfile, listener.closedProfile); - - this.connectionProfile.removeConnectionListener(listener); - assertTrue(this.connectionProfileHasNoListeners()); - } - - public final void testConnectionListenerOffline() { - if ( ! this.executeOfflineTests()) { - return; - } - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.prepareForOfflineWork(); - listener.clear(); - - this.connectionProfile.workOffline(); - assertSame(this.connectionProfile, listener.openedProfile); - listener.clear(); - - this.connectionProfile.disconnect(); - assertSame(this.connectionProfile, listener.okToCloseProfile); - assertSame(this.connectionProfile, listener.aboutToCloseProfile); - assertSame(this.connectionProfile, listener.closedProfile); - listener.clear(); - - this.connectionProfile.removeConnectionListener(listener); - } - - public void testConnectionListenerDatabase() { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - assertSame(this.connectionProfile.getDatabase(), listener.changedDatabase); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testConnectionListenerCatalog() { - this.connectionProfile.connect(); - if ( ! this.connectionProfile.getDatabase().supportsCatalogs()) { - this.connectionProfile.disconnect(); - return; - } - - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - // take the first catalog - org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog = this.getFirstDTPCatalog(); - Catalog catalog = this.getCatalogNamed(dtpCatalog.getName()); - ((ICatalogObject) dtpCatalog).refresh(); - assertSame(catalog, listener.changedCatalog); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testConnectionListenerSchema() { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - List<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs = this.getDTPCatalogs(); - org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog = null; - org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema = null; - Schema schema = null; - if (this.connectionProfile.getDatabase().supportsCatalogs()) { - dtpCatalog = dtpCatalogs.get(0); - dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) dtpCatalog.getSchemas().get(0); - schema = this.getCatalogNamed(dtpCatalog.getName()).getSchemaNamed(dtpSchema.getName()); - } else { - if (dtpCatalogs.isEmpty()) { - dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) this.getDTPDatabase().getSchemas().get(0); - schema = this.connectionProfile.getDatabase().getSchemaNamed(dtpSchema.getName()); - } else { - dtpCatalog = dtpCatalogs.get(0); // should be the "virtual" catalog - assertEquals("", dtpCatalog.getName()); - dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) dtpCatalog.getSchemas().get(0); - // the schemata are held directly by the database in this situation - schema = this.getDatabase().getSchemaNamed(dtpSchema.getName()); - } - } - assertTrue(schema.getTablesSize() >= 0); // force tables to be loaded - ((ICatalogObject) dtpSchema).refresh(); - assertSame(schema, listener.changedSchema); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testSupportsCatalogs() { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - boolean supportsCatalogs = this.supportsCatalogs(); - assertEquals(supportsCatalogs, this.connectionProfile.getDatabase().supportsCatalogs()); - if (supportsCatalogs) { - assertTrue(this.connectionProfile.getDatabase().getCatalogsSize() > 0); - assertEquals(0, this.connectionProfile.getDatabase().getSchemataSize()); - } else { - assertEquals(0, this.connectionProfile.getDatabase().getCatalogsSize()); - assertTrue(this.connectionProfile.getDatabase().getSchemataSize() > 0); - } - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - protected abstract boolean supportsCatalogs(); - -// public void testDEBUG() throws Exception { -// this.connectionProfile.connect(); -// this.dumpJDBCCatalogs(); -// this.dumpJDBCSchemata(); -// this.dumpDatabaseContainers(); -// this.connectionProfile.disconnect(); -// } - - - // ********** convenience methods ********** - - protected ConnectionProfileFactory getConnectionProfileFactory() { - return JptJpaDbPlugin.getConnectionProfileFactory(); - } - - protected ConnectionProfile getConnectionProfile() { - return this.connectionProfile; - } - - protected Database getDatabase() { - return this.connectionProfile.getDatabase(); - } - - protected Catalog getDefaultCatalog() { - return this.getDatabase().getDefaultCatalog(); - } - - /** - * only valid on databases that do not support catalogs - */ - protected Schema getDefaultSchema() { - return this.getDatabase().getDefaultSchema(); - } - - protected Catalog getCatalogNamed(String catalogName) { - return this.connectionProfile.getDatabase().getCatalogNamed(catalogName); - } - - protected String getRequiredPlatformProperty(String propertyKey) { - String propertyValue = this.platformProperties.getProperty(propertyKey); - if (StringTools.stringIsEmpty(propertyValue)) { - throw new IllegalArgumentException("The database platform properties file '" + this.getPlatformPropertiesFilePath() - + "' is missing a value for the property '" + propertyKey + "'."); - } - return propertyValue; - } - - protected boolean connectionProfileHasAnyListeners() { - return connectionProfileHasAnyListeners(this.connectionProfile); - } - - protected static boolean connectionProfileHasAnyListeners(ConnectionProfile cp) { - return ((Boolean) ReflectionTools.executeMethod(cp, "hasAnyListeners")).booleanValue(); - } - - protected boolean connectionProfileHasNoListeners() { - return connectionProfileHasNoListeners(this.connectionProfile); - } - - protected static boolean connectionProfileHasNoListeners(ConnectionProfile cp) { - return ((Boolean) ReflectionTools.executeMethod(cp, "hasNoListeners")).booleanValue(); - } - - - // ********** DTP model ********** - - protected ProfileManager getDTPProfileManager() { - return ProfileManager.getInstance(); - } - - protected IConnectionProfile getDTPConnectionProfile() { - return getDTPConnectionProfile(this.connectionProfile); - } - - protected static IConnectionProfile getDTPConnectionProfile(ConnectionProfile cp) { - return (IConnectionProfile) ReflectionTools.getFieldValue(cp, "dtpConnectionProfile"); - } - - protected org.eclipse.datatools.modelbase.sql.schema.Database getDTPDatabase() { - return getDTPDatabase(this.connectionProfile.getDatabase()); - } - - protected static org.eclipse.datatools.modelbase.sql.schema.Database getDTPDatabase(Database database) { - return (org.eclipse.datatools.modelbase.sql.schema.Database) ReflectionTools.getFieldValue(database, "dtpDatabase"); - } - - @SuppressWarnings("unchecked") - protected List<org.eclipse.datatools.modelbase.sql.schema.Catalog> getDTPCatalogs() { - return this.getDTPDatabase().getCatalogs(); - } - - protected org.eclipse.datatools.modelbase.sql.schema.Catalog getFirstDTPCatalog() { - return this.getDTPCatalogs().get(0); - } - - protected org.eclipse.datatools.modelbase.sql.schema.Catalog getDTPCatalogNamed(String name) { - return getDTPCatalog(this.getDatabase().getCatalogNamed(name)); - } - - protected static org.eclipse.datatools.modelbase.sql.schema.Catalog getDTPCatalog(Catalog catalog) { - return (org.eclipse.datatools.modelbase.sql.schema.Catalog) ReflectionTools.getFieldValue(catalog, "dtpCatalog"); - } - - protected org.eclipse.datatools.modelbase.sql.schema.Schema getDTPSchemaNamed(String name) { - return getDTPSchema(this.getDatabase().getSchemaNamed(name)); - } - - protected static org.eclipse.datatools.modelbase.sql.schema.Schema getDTPSchema(Schema schema) { - return (org.eclipse.datatools.modelbase.sql.schema.Schema) ReflectionTools.getFieldValue(schema, "dtpSchema"); - } - - - // ********** execute SQL ********** - - /** - * ignore any errors (useful for dropping database objects that might - * not be there) - */ - protected void executeUpdateIgnoreErrors(String sql) { - try { - this.executeUpdate(sql); - } catch (Exception ex) { -// System.err.println("SQL: " + sql); -// ex.printStackTrace(); - } - } - - protected void executeUpdate(String sql) throws SQLException { - Statement jdbcStatement = this.createJDBCStatement(); - try { - jdbcStatement.executeUpdate(sql); - } finally { - jdbcStatement.close(); - } - } - - protected void dump(String sql) throws SQLException { - this.dump(sql, 30); - } - - protected void dump(String sql, int columnWidth) throws SQLException { - IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out)); - // synchronize the console so everything is contiguous - synchronized (System.out) { - this.dumpOn(sql, pw, columnWidth); - } - pw.flush(); - } - - protected void dumpOn(String sql, IndentingPrintWriter pw, int columnWidth) throws SQLException { - pw.println(sql); - for (HashMap<String, Object> row : this.execute(sql)) { - for (Map.Entry<String, Object> field : row.entrySet()) { - StringTools.padOrTruncateOn(String.valueOf(field.getKey()), columnWidth/2, pw); - pw.print('='); - StringTools.padOrTruncateOn(String.valueOf(field.getValue()), columnWidth/2, pw); - pw.print(' '); - } - pw.println(); - } - } - - protected ArrayList<HashMap<String, Object>> execute(String sql) throws SQLException { - Statement jdbcStatement = this.createJDBCStatement(); - jdbcStatement.execute(sql); - ArrayList<HashMap<String, Object>> rows = this.buildRows(jdbcStatement.getResultSet()); - jdbcStatement.close(); - return rows; - } - - protected ArrayList<HashMap<String, Object>> buildRows(ResultSet resultSet) throws SQLException { - ArrayList<HashMap<String, Object>> rows = new ArrayList<HashMap<String, Object>>(); - CollectionTools.addAll(rows, this.buildResultSetIterator(resultSet)); - return rows; - } - - protected Iterator<HashMap<String, Object>> buildResultSetIterator(ResultSet resultSet) throws SQLException { - return new ResultSetIterator<HashMap<String, Object>>(resultSet, new MapResultSetIteratorAdapter(resultSet.getMetaData())); - } - - public static class MapResultSetIteratorAdapter - implements ResultSetIterator.Adapter<HashMap<String, Object>> - { - private final int columnCount; - private final String[] columnNames; - public MapResultSetIteratorAdapter(ResultSetMetaData rsMetaData) throws SQLException { - super(); - this.columnCount = rsMetaData.getColumnCount(); - this.columnNames = new String[this.columnCount + 1]; // leave zero slot empty - for (int i = 1; i <= this.columnCount; i++) { // NB: ResultSet index/subscript is 1-based - this.columnNames[i] = rsMetaData.getColumnName(i); - } - } - public HashMap<String, Object> buildNext(ResultSet rs) throws SQLException { - HashMap<String, Object> row = new HashMap<String, Object>(this.columnCount); - for (int i = 1; i <= this.columnCount; i++) { // NB: ResultSet index/subscript is 1-based - row.put(this.columnNames[i], rs.getObject(i)); - } - return row; - } - } - - protected Statement createJDBCStatement() throws SQLException { - return this.getJDBCConnection().createStatement(); - } - - protected Connection getJDBCConnection() { - return this.connectionProfile.getJDBCConnection(); - } - - protected DatabaseMetaData getDatabaseMetaData() throws SQLException { - return this.getJDBCConnection().getMetaData(); - } - - - // ********** dump DTP metadata ********** - - /** - * dump all the database metadata to the console - */ - protected void dumpDatabase() { - this.dumpDatabase(true); - } - - /** - * dump the database catalogs and schemata to the console - */ - protected void dumpDatabaseContainers() { - this.dumpDatabase(false); - } - - protected void dumpDatabase(boolean deep) { - IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out)); - // synchronize the console so everything is contiguous - synchronized (System.out) { - this.dumpDatabaseOn(pw, deep); - } - pw.flush(); - } - - protected void dumpDatabaseOn(IndentingPrintWriter pw, boolean deep) { - Database database = this.connectionProfile.getDatabase(); - pw.print("database: "); - pw.println(database.getName()); - if (database.supportsCatalogs()) { - for (Catalog catalog : database.getCatalogs()) { - this.dumpCatalogOn(catalog, pw, deep); - } - } else { - this.dumpSchemaContainerOn(database, pw, deep); - } - } - - protected void dumpCatalogOn(Catalog catalog, IndentingPrintWriter pw, boolean deep) { - pw.print("catalog: "); - pw.println(catalog.getName()); - pw.indent(); - this.dumpSchemaContainerOn(catalog, pw, deep); - pw.undent(); - } - - protected void dumpSchemaContainerOn(SchemaContainer schemaContainer, IndentingPrintWriter pw, boolean deep) { - for (Schema schema : schemaContainer.getSchemata()) { - this.dumpSchemaOn(schema, pw, deep); - } - } - - protected void dumpSchema(Schema schema) { - this.dumpSchema(schema, true); - } - - protected void dumpSchema(Schema schema, boolean deep) { - IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out)); - // synchronize the console so everything is contiguous - synchronized (System.out) { - this.dumpSchemaOn(schema, pw, deep); - } - pw.flush(); - } - - protected void dumpSchemaOn(Schema schema, IndentingPrintWriter pw, boolean deep) { - pw.print("schema: "); - pw.println(schema.getName()); - if (deep) { - pw.indent(); - for (Table table : schema.getTables()) { - this.dumpTableOn(table, pw); - } - for (Sequence sequence : schema.getSequences()) { - this.dumpSequenceOn(sequence, pw); - } - pw.undent(); - } - } - - protected void dumpTableOn(Table table, IndentingPrintWriter pw) { - pw.print("table: "); - pw.println(table.getName()); - pw.indent(); - for (Column column : table.getColumns()) { - this.dumpColumnOn(column, pw); - } - for (ForeignKey foreignKey : table.getForeignKeys()) { - this.dumpForeignKeyOn(foreignKey, pw); - } - pw.undent(); - } - - protected void dumpColumnOn(Column column, IndentingPrintWriter pw) { - pw.print("column: "); - pw.print(column.getName()); - pw.print(" : "); - pw.print(column.getDataTypeName()); - if (column.isPartOfPrimaryKey()) { - pw.print(" [primary key]"); - } - pw.println(); - } - - protected void dumpForeignKeyOn(ForeignKey foreignKey, IndentingPrintWriter pw) { - pw.print("foreign key: "); - pw.print(foreignKey.getName()); - pw.print("=>"); - pw.print(foreignKey.getReferencedTable().getName()); - pw.print(" ("); - for (Iterator<ForeignKey.ColumnPair> stream = foreignKey.getColumnPairs().iterator(); stream.hasNext(); ) { - ForeignKey.ColumnPair cp = stream.next(); - pw.print(cp.getBaseColumn().getName()); - pw.print("=>"); - pw.print(cp.getReferencedColumn().getName()); - if (stream.hasNext()) { - pw.print(", "); - } - } - pw.print(')'); - pw.println(); - } - - protected void dumpSequenceOn(Sequence sequence, IndentingPrintWriter pw) { - pw.print("sequence: "); - pw.println(sequence.getName()); - } - - - // ********** dump JDBC metadata ********** - - protected void dumpJDBCCatalogs() throws SQLException { - IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out)); - // synchronize the console so everything is contiguous - synchronized (System.out) { - this.dumpJDBCCatalogsOn(pw); - } - pw.flush(); - } - - protected void dumpJDBCCatalogsOn(IndentingPrintWriter pw) throws SQLException { - pw.println("JDBC catalogs: "); - pw.indent(); - ArrayList<HashMap<String, Object>> rows = this.buildRows(this.getDatabaseMetaData().getCatalogs()); - for (Iterator<HashMap<String, Object>> stream = rows.iterator(); stream.hasNext(); ) { - HashMap<String, Object> row = stream.next(); - pw.println(row.get("TABLE_CAT")); - } - pw.undent(); - } - - protected void dumpJDBCSchemata() throws SQLException { - IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out)); - // synchronize the console so everything is contiguous - synchronized (System.out) { - this.dumpJDBCSchemataOn(pw); - } - pw.flush(); - } - - protected void dumpJDBCSchemataOn(IndentingPrintWriter pw) throws SQLException { - pw.println("JDBC schemata: "); - pw.indent(); - ArrayList<HashMap<String, Object>> rows = this.buildRows(this.getDatabaseMetaData().getSchemas()); - for (HashMap<String, Object> row : rows) { - if (row.size() == 2) { // catalogs were added in jdk 1.4 - Object catalog = row.get("TABLE_CATALOG"); - pw.print(catalog); - pw.print('.'); - } - Object schema = row.get("TABLE_SCHEM"); - pw.println(schema); - } - pw.undent(); - } - - - // ********** connection profile listener ********** - - protected static class TestConnectionProfileListener implements ConnectionProfileListener { - public String addedName; - public String removedName; - public String renamedOldName; - public String renamedNewName; - - public void connectionProfileAdded(String name) { - this.addedName = name; - } - public void connectionProfileRemoved(String name) { - this.removedName = name; - } - public void connectionProfileRenamed(String oldName, String newName) { - this.renamedOldName = oldName; - this.renamedNewName = newName; - } - public void clear() { - this.addedName = null; - this.removedName = null; - this.renamedOldName = null; - this.renamedNewName = null; - } - } - - - // ********** connection listener ********** - - protected static class TestConnectionListener implements ConnectionListener { - public ConnectionProfile openedProfile; - public ConnectionProfile modifiedProfile; - public ConnectionProfile okToCloseProfile; - public ConnectionProfile aboutToCloseProfile; - public ConnectionProfile closedProfile; - public Database changedDatabase; - public Catalog changedCatalog; - public Schema changedSchema; - public Sequence changedSequence; - public Table changedTable; - public Column changedColumn; - public ForeignKey changedForeignKey; - - public void opened(ConnectionProfile profile) { - this.openedProfile = profile; - } - public void modified(ConnectionProfile profile) { - this.modifiedProfile = profile; - } - public boolean okToClose(ConnectionProfile profile) { - this.okToCloseProfile = profile; - return true; - } - public void aboutToClose(ConnectionProfile profile) { - this.aboutToCloseProfile = profile; - } - public void closed(ConnectionProfile profile) { - this.closedProfile = profile; - } - public void databaseChanged(ConnectionProfile profile, Database database) { - this.changedDatabase = database; - } - public void catalogChanged(ConnectionProfile profile, Catalog catalog) { - this.changedCatalog = catalog; - } - public void schemaChanged(ConnectionProfile profile, Schema schema) { - this.changedSchema = schema; - } - public void sequenceChanged(ConnectionProfile profile, Sequence sequence) { - this.changedSequence = sequence; - } - public void tableChanged(ConnectionProfile profile, Table table) { - this.changedTable = table; - } - public void columnChanged(ConnectionProfile profile, Column column) { - this.changedColumn = column; - } - public void foreignKeyChanged(ConnectionProfile profile, ForeignKey foreignKey) { - this.changedForeignKey = foreignKey; - } - public void clear() { - this.openedProfile = null; - this.modifiedProfile = null; - this.okToCloseProfile = null; - this.aboutToCloseProfile = null; - this.closedProfile = null; - this.changedDatabase = null; - this.changedCatalog = null; - this.changedSchema = null; - this.changedSequence = null; - this.changedTable = null; - this.changedColumn = null; - this.changedForeignKey = null; - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DerbyTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DerbyTests.java deleted file mode 100644 index 4dd8792c63..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DerbyTests.java +++ /dev/null @@ -1,482 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - -import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject; -import org.eclipse.jpt.jpa.db.Column; -import org.eclipse.jpt.jpa.db.ForeignKey; -import org.eclipse.jpt.jpa.db.Schema; -import org.eclipse.jpt.jpa.db.Table; - -@SuppressWarnings("nls") -public class DerbyTests extends DTPPlatformTests { - - public DerbyTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "derby.properties"; - } - - @Override - protected String getDriverName() { - return "Derby Embedded JDBC Driver"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.Derby Embedded JDBC Driver"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.connectivity.db.derby101.genericDriverTemplate"; - } - - @Override - protected String getDatabaseVendor() { - return "Derby"; - } - - @Override - protected String getDatabaseVersion() { - return "10.1"; - } - - @Override - protected String getDriverClass() { - return "org.apache.derby.jdbc.EmbeddedDriver"; - } - - @Override - protected String getProfileName() { - return "Derby_10.1_Embedded"; - } - - @Override - protected String getProfileDescription() { - return "Derby 10.1 Embedded JDBC Profile [Test]"; - } - - @Override - protected String getProviderID() { - return "org.eclipse.datatools.connectivity.db.derby.embedded.connectionProfile"; - } - - @Override - protected boolean supportsCatalogs() { - return false; - } - - @Override - protected boolean executeOfflineTests() { - return true; - } - - public void testSchema() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropSchema("TEST1"); - this.dropSchema("TEST2"); - - this.executeUpdate("CREATE SCHEMA TEST1"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema1 = this.getDatabase().getSchemaNamed("TEST1"); - assertNotNull(schema1); - - this.executeUpdate("CREATE SCHEMA TEST2"); - Schema schema2 = this.getDatabase().getSchemaNamed("TEST2"); - assertNull(schema2); // should be null until refresh - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - assertSame(this.getDatabase(), listener.changedDatabase); - - schema2 = this.getDatabase().getSchemaNamed("TEST2"); - assertNotNull(schema2); - assertNotSame(schema1, this.getDatabase().getSchemaNamed("TEST1")); // we should have a new schema after the refresh - - this.dropSchema("TEST2"); - this.dropSchema("TEST1"); - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testSchemaLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropSchema("LOOKUP_TEST"); - this.dropSchema("\"lookup_TEST\""); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - this.executeUpdate("CREATE SCHEMA LOOKUP_TEST"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - assertNotNull(this.getDatabase().getSchemaNamed("LOOKUP_TEST")); - assertNotNull(this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST")); - - assertNull(this.getDatabase().getSchemaNamed("lookup_test")); - assertNotNull(this.getDatabase().getSchemaForIdentifier("lookup_test")); - - assertNull(this.getDatabase().getSchemaNamed("lookup_TEST")); - assertNotNull(this.getDatabase().getSchemaForIdentifier("lookup_TEST")); - - assertNotNull(this.getDatabase().getSchemaForIdentifier("\"LOOKUP_TEST\"")); - assertNull(this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\"")); - - this.dropSchema("LOOKUP_TEST"); - - this.executeUpdate("CREATE SCHEMA \"lookup_TEST\""); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - assertNull(this.getDatabase().getSchemaNamed("LOOKUP_TEST")); - assertNull(this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST")); - - assertNull(this.getDatabase().getSchemaNamed("lookup_test")); - assertNull(this.getDatabase().getSchemaForIdentifier("lookup_test")); - - assertNotNull(this.getDatabase().getSchemaNamed("lookup_TEST")); - assertNull(this.getDatabase().getSchemaForIdentifier("lookup_TEST")); - - assertNull(this.getDatabase().getSchemaForIdentifier("\"LOOKUP_TEST\"")); - assertNotNull(this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\"")); - - this.dropSchema("\"lookup_TEST\""); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testSchemaIdentifier() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropSchema("LOOKUP_TEST"); - this.dropSchema("\"lookup_TEST\""); - - this.executeUpdate("CREATE SCHEMA lookup_test"); // this gets folded to uppercase - this.executeUpdate("CREATE SCHEMA \"lookup_TEST\""); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST"); - assertEquals("LOOKUP_TEST", schema.getIdentifier()); - assertEquals("LOOKUP_TEST", schema.getIdentifier("LookupTest")); - assertNull(schema.getIdentifier("Lookup_Test")); - - schema = this.getDatabase().getSchemaForIdentifier("lookup_test"); - assertEquals("LOOKUP_TEST", schema.getIdentifier()); - - schema = this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\""); - assertEquals("\"lookup_TEST\"", schema.getIdentifier()); - assertEquals("\"lookup_TEST\"", schema.getIdentifier("lookup_TEST")); - - this.dropSchema("\"lookup_TEST\""); - this.dropSchema("LOOKUP_TEST"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testTable() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("TABLE_TEST", "FOO_BAZ"); - this.dropTable("TABLE_TEST", "BAZ"); - this.dropTable("TABLE_TEST", "FOO"); - this.dropTable("TABLE_TEST", "BAR"); - this.dropSchema("TABLE_TEST"); - - this.executeUpdate("CREATE SCHEMA TABLE_TEST"); - this.executeUpdate("SET SCHEMA = TABLE_TEST"); - - this.executeUpdate(this.buildBarDDL()); - this.executeUpdate(this.buildFooDDL()); - this.executeUpdate(this.buildBazDDL()); - this.executeUpdate(this.buildFooBazDDL()); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDatabase().getSchemaNamed("TABLE_TEST"); - - // FOO - Table fooTable = schema.getTableNamed("FOO"); - assertEquals(4, fooTable.getColumnsSize()); - assertEquals(1, fooTable.getPrimaryKeyColumnsSize()); - assertEquals(1, fooTable.getForeignKeysSize()); - - Column pkColumn = fooTable.getPrimaryKeyColumn(); - assertEquals("ID", pkColumn.getName()); - Column idColumn = fooTable.getColumnNamed("ID"); - assertSame(pkColumn, idColumn); - assertEquals("INTEGER", idColumn.getDataTypeName()); - assertSame(fooTable, idColumn.getTable()); - assertTrue(idColumn.isPartOfPrimaryKey()); - assertFalse(idColumn.isPartOfForeignKey()); - assertEquals("int", idColumn.getJavaTypeDeclaration()); - - Column nameColumn = fooTable.getColumnNamed("NAME"); - assertEquals("VARCHAR", nameColumn.getDataTypeName()); - assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration()); - assertEquals(20, nameColumn.getLength()); - assertFalse(nameColumn.isPartOfPrimaryKey()); - assertFalse(nameColumn.isNumeric()); - assertTrue(nameColumn.isNullable()); - - Column barColumn = fooTable.getColumnNamed("BAR_ID"); - assertEquals("INTEGER", barColumn.getDataTypeName()); - assertTrue(barColumn.isPartOfForeignKey()); - assertFalse(barColumn.isPartOfPrimaryKey()); - - Column salaryColumn = fooTable.getColumnNamed("SALARY"); - assertEquals("DECIMAL", salaryColumn.getDataTypeName()); - assertTrue(salaryColumn.isNullable()); - assertTrue(salaryColumn.isNumeric()); - assertEquals(11, salaryColumn.getPrecision()); - assertEquals(2, salaryColumn.getScale()); - assertEquals(-1, salaryColumn.getLength()); - - ForeignKey barFK = fooTable.getForeignKeys().iterator().next(); // there should only be 1 foreign key - assertEquals(1, barFK.getColumnPairsSize()); - assertEquals("BAR", barFK.getAttributeName()); - assertNull(barFK.getJoinColumnAnnotationIdentifier("bar")); - assertEquals("BAR_ID", barFK.getJoinColumnAnnotationIdentifier("primaryBar")); - assertSame(fooTable, barFK.getBaseTable()); - - assertFalse(fooTable.isPossibleJoinTable()); - assertSame(schema, fooTable.getSchema()); - - // BAR - Table barTable = schema.getTableNamed("BAR"); - assertEquals(3, barTable.getColumnsSize()); - assertEquals(1, barTable.getPrimaryKeyColumnsSize()); - assertEquals(0, barTable.getForeignKeysSize()); - assertEquals("ID", barTable.getPrimaryKeyColumn().getName()); - assertFalse(barTable.isPossibleJoinTable()); - - Column id2Column = barTable.getColumnNamed("ID2"); - assertEquals("INTEGER", id2Column.getDataTypeName()); -// assertTrue(id2Column.isPartOfUniqueConstraint()); // doesn't work(?) - assertFalse(id2Column.isNullable()); - assertTrue(id2Column.isNumeric()); - assertEquals(0, id2Column.getPrecision()); // not sure what to expect here... - assertEquals(0, id2Column.getScale()); // not sure what to expect here either... - assertEquals("BLOB", barTable.getColumnNamed("CHUNK").getDataTypeName()); - assertEquals("byte[]", barTable.getColumnNamed("CHUNK").getJavaTypeDeclaration()); - assertTrue(barTable.getColumnNamed("CHUNK").isLOB()); - assertSame(barTable, barFK.getReferencedTable()); - - // BAZ - Table bazTable = schema.getTableNamed("BAZ"); - Column nicknameColumn = bazTable.getColumnNamed("NICKNAME"); - assertEquals(20, nicknameColumn.getLength()); -// assertTrue(nicknameColumn.isPartOfUniqueConstraint()); // doesn't work(?) - - // FOO_BAZ - Table foo_bazTable = schema.getTableNamed("FOO_BAZ"); - assertEquals(2, foo_bazTable.getColumnsSize()); - assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize()); - assertEquals(2, foo_bazTable.getForeignKeysSize()); - assertTrue(foo_bazTable.isPossibleJoinTable()); - assertTrue(foo_bazTable.joinTableNameIsDefault()); - assertTrue(foo_bazTable.getColumnNamed("FOO_ID").isPartOfForeignKey()); - - this.dropTable("TABLE_TEST", "FOO_BAZ"); - this.dropTable("TABLE_TEST", "BAZ"); - this.dropTable("TABLE_TEST", "FOO"); - this.dropTable("TABLE_TEST", "BAR"); - this.dropSchema("TABLE_TEST"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private static final String CR = System.getProperty("line.separator"); //$NON-NLS-1$ - - private String buildBarDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE BAR (").append(CR); - sb.append(" ID INT PRIMARY KEY,").append(CR); - sb.append(" ID2 INT UNIQUE NOT NULL,").append(CR); - sb.append(" CHUNK BLOB(100K)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE FOO (").append(CR); - sb.append(" ID INT PRIMARY KEY,").append(CR); - sb.append(" NAME VARCHAR(20),").append(CR); - sb.append(" SALARY DECIMAL(11, 2),").append(CR); - sb.append(" BAR_ID INT REFERENCES BAR(ID)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE BAZ (").append(CR); - sb.append(" ID INT PRIMARY KEY,").append(CR); - sb.append(" NICKNAME VARCHAR(20) NOT NULL UNIQUE").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE FOO_BAZ (").append(CR); - sb.append(" FOO_ID INT REFERENCES FOO(ID),").append(CR); - sb.append(" BAZ_ID INT REFERENCES BAZ(ID)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - public void testColumnLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("COLUMN_TEST", "test"); - this.dropSchema("COLUMN_TEST"); - - this.executeUpdate("CREATE SCHEMA COLUMN_TEST"); - this.executeUpdate("SET SCHEMA = COLUMN_TEST"); - - // lowercase - this.executeUpdate("CREATE TABLE test (id INTEGER, name VARCHAR(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Table table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("id")); - assertNotNull(table.getColumnForIdentifier("name")); - - this.dropTable("COLUMN_TEST", "test"); - - // uppercase - this.executeUpdate("CREATE TABLE test (ID INTEGER, NAME VARCHAR(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("ID")); - assertNotNull(table.getColumnForIdentifier("NAME")); - - this.dropTable("COLUMN_TEST", "test"); - - // mixed case - this.executeUpdate("CREATE TABLE test (Id INTEGER, Name VARCHAR(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("Id")); - assertNotNull(table.getColumnForIdentifier("Name")); - - this.dropTable("COLUMN_TEST", "test"); - - // delimited - this.executeUpdate("CREATE TABLE test (\"Id\" INTEGER, \"Name\" VARCHAR(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("\"Id\"")); - assertNotNull(table.getColumnForIdentifier("\"Name\"")); - - this.dropTable("COLUMN_TEST", "test"); - this.dropSchema("COLUMN_TEST"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testCrossSchemaReference() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("XREF_TEST2", "EMP"); - this.dropSchema("XREF_TEST2"); - this.dropTable("XREF_TEST1", "ORG"); - this.dropSchema("XREF_TEST1"); - - this.executeUpdate("CREATE SCHEMA XREF_TEST1"); - this.executeUpdate("SET SCHEMA = XREF_TEST1"); - this.executeUpdate("CREATE TABLE ORG (ID INTEGER PRIMARY KEY, NAME VARCHAR(20))"); - - this.executeUpdate("CREATE SCHEMA XREF_TEST2"); - this.executeUpdate("SET SCHEMA = XREF_TEST2"); - this.executeUpdate("CREATE TABLE EMP (ID INTEGER PRIMARY KEY, NAME VARCHAR(20), " + - "ORG_ID INTEGER REFERENCES XREF_TEST1.ORG(ID))"); - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - Schema schema1 = this.getDatabase().getSchemaNamed("XREF_TEST1"); - assertNotNull(schema1); - Table orgTable = schema1.getTableNamed("ORG"); - assertNotNull(orgTable); - - Schema schema2 = this.getDatabase().getSchemaNamed("XREF_TEST2"); - assertNotNull(schema2); - Table empTable = schema2.getTableNamed("EMP"); - assertNotNull(empTable); - assertEquals(1, empTable.getForeignKeysSize()); - ForeignKey fk = empTable.getForeignKeys().iterator().next(); - Table refTable = fk.getReferencedTable(); - assertNotNull(refTable); - assertEquals("ORG", refTable.getName()); - assertEquals(1, fk.getColumnPairsSize()); - ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next(); - Column baseColumn = cp.getBaseColumn(); - assertEquals("ORG_ID", baseColumn.getName()); - Column refColumn = cp.getReferencedColumn(); - assertEquals("ID", refColumn.getName()); - - this.dropTable("XREF_TEST2", "EMP"); - this.dropSchema("XREF_TEST2"); - this.dropTable("XREF_TEST1", "ORG"); - this.dropSchema("XREF_TEST1"); - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private void dropTable(String schemaName, String tableName) throws Exception { - Schema schema= this.getDatabase().getSchemaForIdentifier(schemaName); - if (schema != null) { - if (schema.getTableForIdentifier(tableName) != null) { - this.executeUpdate("DROP TABLE " + schemaName + '.' + tableName); - } - } - } - - /** - * NB: A Derby schema must be empty before it can be dropped. - */ - private void dropSchema(String name) throws Exception { - if (this.getDatabase().getSchemaForIdentifier(name) != null) { - this.executeUpdate("DROP SCHEMA " + name + " RESTRICT"); - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java deleted file mode 100644 index e35b7e7fca..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java +++ /dev/null @@ -1,417 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2011 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants; -import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.jpa.db.Column; -import org.eclipse.jpt.jpa.db.ForeignKey; -import org.eclipse.jpt.jpa.db.Schema; -import org.eclipse.jpt.jpa.db.Table; - -/** - * MySQL - * - * Notes:<ul> - * <li>We can only get database objects from the database associated with our - * connection profile. - * <li>We can reference objects across multiple databases, so they are sorta like - * schemas.... - * <li>Foreign keys must be defined as table-level constraints; they cannot be - * defined as part of the column clause. - * <li>Case-sensitivity and -folding is whacked on MySQL.... - * </ul> - */ -@SuppressWarnings("nls") -public class MySQLTests extends DTPPlatformTests { - - public MySQLTests( String name) { - super(name); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "mysql.properties"; - } - - @Override - protected String getDriverName() { - return "MySQL JDBC Driver"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.MySQL JDBC Driver"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.enablement.mysql.4_1.driverTemplate"; - } - - @Override - protected String getDatabaseVendor() { - return "MySql"; - } - - @Override - protected String getDatabaseVersion() { - return "4.1"; - } - - @Override - protected String getDriverClass() { - return "com.mysql.jdbc.Driver"; - } - - @Override - protected String getDefaultJDBCURL() { - return "jdbc:mysql://localhost:3306"; - } - - @Override - protected String getProfileName() { - return "MySQL_4.1"; - } - - @Override - protected String getProfileDescription() { - return "MySQL 4.1 JDBC Profile [Test]"; - } - - @Override - protected boolean supportsCatalogs() { - return false; - } - - @Override - protected Properties buildDTPConnectionProfileProperties() { - Properties p = super.buildDTPConnectionProfileProperties(); - p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_NAME_PROP_ID, this.getDatabaseName()); - return p; - } - - private String getDatabaseName() { - return this.getUserID(); // by convention... - } - - @Override - protected boolean executeOfflineTests() { - return true; // seems to work... - } - - public void testDatabase() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - // DTP: MySQL has a single schema with the same name as the database - Schema schema = this.getDatabase().getSchemaNamed(this.getDatabaseName()); - assertNotNull(schema); - assertSame(this.getDefaultSchema(), schema); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testTable() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog(this.getDatabaseName()); - - this.dropTable("foo_baz"); - this.dropTable("baz"); - this.dropTable("foo"); - this.dropTable("bar"); - - this.executeUpdate(this.buildBarDDL()); - this.executeUpdate(this.buildFooDDL()); - this.executeUpdate(this.buildBazDDL()); - this.executeUpdate(this.buildFooBazDDL()); - // the MySQL database does NOT refresh - see bug 279721... - ((ICatalogObject) this.getDTPDatabase()).refresh(); - // ...refresh the single schema instead - ((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh(); - - Schema schema = this.getDefaultSchema(); - - // foo - Table fooTable = schema.getTableNamed("foo"); - assertEquals(3, fooTable.getColumnsSize()); - assertEquals(1, fooTable.getPrimaryKeyColumnsSize()); - // if the tables are created with MyISAM as the backing store - // there will be no foreign keys - assertEquals(1, fooTable.getForeignKeysSize()); - - Column pkColumn = fooTable.getPrimaryKeyColumn(); - assertEquals("id", pkColumn.getName()); - Column idColumn = fooTable.getColumnNamed("id"); - assertSame(pkColumn, idColumn); - assertEquals("INT", idColumn.getDataTypeName()); - assertSame(fooTable, idColumn.getTable()); - assertTrue(idColumn.isPartOfPrimaryKey()); - assertFalse(idColumn.isPartOfForeignKey()); - assertEquals("int", idColumn.getJavaTypeDeclaration()); - - Column nameColumn = fooTable.getColumnNamed("name"); - assertEquals("VARCHAR", nameColumn.getDataTypeName()); - assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration()); - assertFalse(nameColumn.isPartOfPrimaryKey()); - - Column barColumn = fooTable.getColumnNamed("bar_id"); - assertEquals("INT", barColumn.getDataTypeName()); - assertTrue(barColumn.isPartOfForeignKey()); - assertFalse(barColumn.isPartOfPrimaryKey()); - - ForeignKey barFK = fooTable.getForeignKeys().iterator().next(); // there should only be 1 foreign key - assertEquals(1, barFK.getColumnPairsSize()); - assertEquals("bar", barFK.getAttributeName()); - assertNull(barFK.getJoinColumnAnnotationIdentifier("bar")); - assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar")); - assertSame(fooTable, barFK.getBaseTable()); - - assertFalse(fooTable.isPossibleJoinTable()); - assertSame(schema, fooTable.getSchema()); - - // BAR - Table barTable = schema.getTableNamed("bar"); - assertEquals(2, barTable.getColumnsSize()); - assertEquals(1, barTable.getPrimaryKeyColumnsSize()); - assertEquals(0, barTable.getForeignKeysSize()); - assertEquals("id", barTable.getPrimaryKeyColumn().getName()); - assertFalse(barTable.isPossibleJoinTable()); - assertEquals("BLOB", barTable.getColumnNamed("chunk").getDataTypeName()); - assertEquals("byte[]", barTable.getColumnNamed("chunk").getJavaTypeDeclaration()); - assertTrue(barTable.getColumnNamed("chunk").isLOB()); - assertSame(barTable, barFK.getReferencedTable()); - - // FOO_BAZ - Table foo_bazTable = schema.getTableNamed("foo_baz"); - assertEquals(2, foo_bazTable.getColumnsSize()); - assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize()); - assertEquals(2, foo_bazTable.getForeignKeysSize()); - assertTrue(foo_bazTable.isPossibleJoinTable()); - assertTrue(foo_bazTable.joinTableNameIsDefault()); - assertTrue(foo_bazTable.getColumnNamed("foo_id").isPartOfForeignKey()); - - this.dropTable("foo_baz"); - this.dropTable("baz"); - this.dropTable("foo"); - this.dropTable("bar"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private static final String CR = System.getProperty("line.separator"); - - private String buildBarDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE bar (").append(CR); - sb.append(" id INTEGER PRIMARY KEY,").append(CR); - sb.append(" chunk BLOB").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE foo (").append(CR); - sb.append(" id INTEGER PRIMARY KEY,").append(CR); - sb.append(" name VARCHAR(20),").append(CR); - sb.append(" bar_id INTEGER,").append(CR); - sb.append(" CONSTRAINT BAR FOREIGN KEY (bar_id) REFERENCES bar(id)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE baz (").append(CR); - sb.append(" id INTEGER PRIMARY KEY,").append(CR); - sb.append(" name VARCHAR(20)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE foo_baz (").append(CR); - sb.append(" foo_id INT,").append(CR); - sb.append(" baz_id INT,").append(CR); - sb.append(" FOREIGN KEY (foo_id) REFERENCES foo(id),").append(CR); - sb.append(" FOREIGN KEY (baz_id) REFERENCES baz(id)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - /** - * On Windows, table names get folded to lowercase by default; - * even if the name is delimited (apparently). - */ - public void testTableLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog(this.getDatabaseName()); - - this.dropTable("test1"); - this.dropTable("TEST2"); - this.dropTable("`TEST3`"); - - this.executeUpdate("CREATE TABLE test1 (id INTEGER, name VARCHAR(20))"); - this.executeUpdate("CREATE TABLE TEST2 (id INTEGER, name VARCHAR(20))"); - this.executeUpdate("CREATE TABLE `TEST3` (id INTEGER, name VARCHAR(20))"); - // the MySQL database does NOT refresh - see bug 279721... - ((ICatalogObject) this.getDTPDatabase()).refresh(); - // ...refresh the single schema instead - ((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh(); - - Schema schema = this.getDefaultSchema(); - - Table test1Table = schema.getTableForIdentifier("test1"); - assertNotNull(test1Table); - - // if 'lctn' is 0 (UNIX), the table name is case-sensitive - int lctn = this.getLowerCaseTableNamesFromDatabase(); - - String test2Identifier = (lctn == 0) ? "TEST2" : "test2"; - Table test2Table = schema.getTableForIdentifier(test2Identifier); - assertNotNull(test2Table); - - String test3Identifier = (lctn == 0) ? "`TEST3`" : "`test3`"; - Table test3Table = schema.getTableForIdentifier(test3Identifier); - assertNotNull(test3Table); - - this.dropTable("test1"); - this.dropTable("TEST2"); - this.dropTable("`TEST3`"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - protected int getLowerCaseTableNamesFromDatabase() throws SQLException { - // the underscore is a wild character on MySQL, so we need to escape it - ArrayList<HashMap<String, Object>> rows = this.execute("show variables like 'lower\\_case\\_table\\_names'"); - Map<String, Object> row = rows.get(0); - return Integer.valueOf((String) row.get("Value")).intValue(); - } - - /** - * MySQL preserves the case of column names, delimited or not; - * but they are <em>not</em> case-sensitive when used in SQL. - * Delimiters are useful for reserved identifiers and special characters. - */ - public void testColumnLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog(this.getDatabaseName()); - - this.dropTable("test"); - - // lowercase - this.executeUpdate("CREATE TABLE test (id INTEGER, name VARCHAR(20))"); - // the MySQL database does NOT refresh - see bug 279721... - ((ICatalogObject) this.getDTPDatabase()).refresh(); - // ...refresh the single schema instead - ((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh(); - - Table table = this.getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnNamed("id")); - assertNotNull(table.getColumnNamed("name")); - assertNotNull(table.getColumnForIdentifier("id")); - assertNotNull(table.getColumnForIdentifier("name")); - - this.dropTable("test"); - - // uppercase - this.executeUpdate("CREATE TABLE test (ID INTEGER, NAME VARCHAR(20))"); - // the MySQL database does NOT refresh - see bug 279721... - ((ICatalogObject) this.getDTPDatabase()).refresh(); - // ...refresh the single schema instead - ((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh(); - - table = this.getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnNamed("ID")); - assertNotNull(table.getColumnNamed("NAME")); - assertNotNull(table.getColumnForIdentifier("id")); - assertNotNull(table.getColumnForIdentifier("name")); - - this.dropTable("test"); - - // mixed case - this.executeUpdate("CREATE TABLE test (Id INTEGER, Name VARCHAR(20))"); - // the MySQL database does NOT refresh - see bug 279721... - ((ICatalogObject) this.getDTPDatabase()).refresh(); - // ...refresh the single schema instead - ((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh(); - - table = this.getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnNamed("Id")); - assertNotNull(table.getColumnNamed("Name")); - assertNotNull(table.getColumnForIdentifier("id")); - assertNotNull(table.getColumnForIdentifier("name")); - - this.dropTable("test"); - - // delimited - this.executeUpdate("CREATE TABLE test (`Id` INTEGER, `Name` VARCHAR(20))"); - // the MySQL database does NOT refresh - see bug 279721... - ((ICatalogObject) this.getDTPDatabase()).refresh(); - // ...refresh the single schema instead - ((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh(); - - table = this.getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnNamed("Id")); - assertNotNull(table.getColumnNamed("Name")); - assertNotNull(table.getColumnForIdentifier("id")); - assertNotNull(table.getColumnForIdentifier("name")); - - boolean quotes = this.getANSIQuotesFromDatabase(); - assertNotNull(table.getColumnForIdentifier("`Id`")); - if (quotes) { - assertNotNull(table.getColumnForIdentifier("\"Id\"")); - } - - assertNotNull(table.getColumnForIdentifier("`Name`")); - if (quotes) { - assertNotNull(table.getColumnForIdentifier("\"Name\"")); - } - - this.dropTable("test"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - protected boolean getANSIQuotesFromDatabase() throws SQLException { - ArrayList<HashMap<String, Object>> rows = this.execute("SELECT @@SESSION.sql_mode"); - Map<String, Object> row = rows.get(0); - String sql_mode = (String) row.get("@@SESSION.sql_mode"); - String[] modes = sql_mode.split(","); - return Boolean.valueOf(ArrayTools.contains(modes, "ANSI_QUOTES")).booleanValue(); - } - - private void dropTable(String tableName) throws Exception { - this.executeUpdate("DROP TABLE IF EXISTS " + tableName); - } -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gTests.java deleted file mode 100644 index c4711e8830..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gTests.java +++ /dev/null @@ -1,397 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - -import java.sql.SQLException; - -import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject; -import org.eclipse.jpt.jpa.db.Column; -import org.eclipse.jpt.jpa.db.ForeignKey; -import org.eclipse.jpt.jpa.db.Schema; -import org.eclipse.jpt.jpa.db.Table; - -@SuppressWarnings("nls") -public class Oracle10gTests extends DTPPlatformTests { - - public Oracle10gTests( String name) { - super( name); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "oracle10g.properties"; - } - - @Override - protected String getDriverName() { - return "Oracle 10g Thin Driver"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.Oracle Thin Driver"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.enablement.oracle.10.driverTemplate"; - } - - @Override - protected String getDatabaseVendor() { - return "Oracle"; - } - - @Override - protected String getDatabaseVersion() { - return "10"; - } - - @Override - protected String getDriverClass() { - return "oracle.jdbc.OracleDriver"; - } - - @Override - protected String getProfileName() { - return "Oracle10g_10.1.0.4"; - } - - @Override - protected String getProfileDescription() { - return "Oracle10g (10.1.0.4) JDBC Profile [Test]"; - } - - @Override - protected boolean supportsCatalogs() { - return false; - } - - @Override - protected boolean executeOfflineTests() { - // working offline is pretty ugly - return false; - } - - public void testDatabase() throws Exception { - if (this.connectionProfile.getUserName().toUpperCase().equals("SYS")) { - System.out.println("skipped test: " + this.getClass() + '.' + this.getName()); - return; // SYS does not have a schema - } - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - // Oracle should have a schema with the same name as the user - Schema schema = this.getDatabase().getSchemaForIdentifier(this.getUserID()); - assertNotNull(schema); - assertSame(this.getDefaultSchema(), schema); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testTable() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("foo_baz"); - this.dropTable("baz"); - this.dropTable("foo"); - this.dropTable("bar"); - - this.executeUpdate(this.buildBarDDL()); - this.executeUpdate(this.buildFooDDL()); - this.executeUpdate(this.buildBazDDL()); - this.executeUpdate(this.buildFooBazDDL()); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDefaultSchema(); - - // foo - Table fooTable = schema.getTableForIdentifier("foo"); - assertEquals(3, fooTable.getColumnsSize()); - assertEquals(1, fooTable.getPrimaryKeyColumnsSize()); - assertEquals(1, fooTable.getForeignKeysSize()); - - Column pkColumn = fooTable.getPrimaryKeyColumn(); - assertEquals("ID", pkColumn.getName()); - Column idColumn = fooTable.getColumnForIdentifier("id"); - assertSame(pkColumn, idColumn); - assertEquals("NUMBER", idColumn.getDataTypeName()); - assertSame(fooTable, idColumn.getTable()); - assertTrue(idColumn.isPartOfPrimaryKey()); - assertFalse(idColumn.isPartOfForeignKey()); - assertEquals("java.math.BigDecimal", idColumn.getJavaTypeDeclaration()); - - Column nameColumn = fooTable.getColumnForIdentifier("name"); - assertEquals("VARCHAR2", nameColumn.getDataTypeName()); - assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration()); - assertFalse(nameColumn.isPartOfPrimaryKey()); - - Column barColumn = fooTable.getColumnForIdentifier("bar_id"); - assertEquals("NUMBER", barColumn.getDataTypeName()); - assertTrue(barColumn.isPartOfForeignKey()); - assertFalse(barColumn.isPartOfPrimaryKey()); - - ForeignKey barFK = fooTable.getForeignKeys().iterator().next(); // there should only be 1 foreign key - assertEquals(1, barFK.getColumnPairsSize()); - assertEquals("BAR", barFK.getAttributeName()); - assertNull(barFK.getJoinColumnAnnotationIdentifier("bar")); - assertEquals("BAR_ID", barFK.getJoinColumnAnnotationIdentifier("primaryBar")); - assertSame(fooTable, barFK.getBaseTable()); - - assertFalse(fooTable.isPossibleJoinTable()); - assertSame(schema, fooTable.getSchema()); - - // BAR - Table barTable = schema.getTableForIdentifier("bar"); - assertEquals(2, barTable.getColumnsSize()); - assertEquals(1, barTable.getPrimaryKeyColumnsSize()); - assertEquals(0, barTable.getForeignKeysSize()); - assertEquals("ID", barTable.getPrimaryKeyColumn().getName()); - assertFalse(barTable.isPossibleJoinTable()); - assertEquals("BLOB", barTable.getColumnForIdentifier("chunk").getDataTypeName()); - assertEquals("byte[]", barTable.getColumnForIdentifier("chunk").getJavaTypeDeclaration()); - assertTrue(barTable.getColumnForIdentifier("chunk").isLOB()); - assertSame(barTable, barFK.getReferencedTable()); - - // FOO_BAZ - Table foo_bazTable = schema.getTableForIdentifier("foo_baz"); - assertEquals(2, foo_bazTable.getColumnsSize()); - assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize()); - assertEquals(2, foo_bazTable.getForeignKeysSize()); - assertTrue(foo_bazTable.isPossibleJoinTable()); - assertTrue(foo_bazTable.joinTableNameIsDefault()); - assertTrue(foo_bazTable.getColumnForIdentifier("foo_id").isPartOfForeignKey()); - - this.dropTable("foo_baz"); - this.dropTable("baz"); - this.dropTable("foo"); - this.dropTable("bar"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private static final String CR = System.getProperty("line.separator"); //$NON-NLS-1$ - - private String buildBarDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE bar (").append(CR); - sb.append(" id NUMBER(10) PRIMARY KEY,").append(CR); - sb.append(" chunk BLOB").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE foo (").append(CR); - sb.append(" id NUMBER(10) PRIMARY KEY,").append(CR); - sb.append(" name VARCHAR2(20),").append(CR); - sb.append(" bar_id REFERENCES bar(id)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE baz (").append(CR); - sb.append(" id NUMBER(10) PRIMARY KEY,").append(CR); - sb.append(" name VARCHAR2(20)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE foo_baz (").append(CR); - sb.append(" foo_id NUMBER(10) REFERENCES foo(id),").append(CR); - sb.append(" baz_id NUMBER(10) REFERENCES baz(id)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - public void testTableLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("test1"); - this.dropTable("TEST2"); - this.dropTable("\"test3\""); - - this.executeUpdate("CREATE TABLE test1 (id NUMBER(10), name VARCHAR2(20))"); - this.executeUpdate("CREATE TABLE TEST2 (id NUMBER(10), name VARCHAR2(20))"); - this.executeUpdate("CREATE TABLE \"test3\" (id NUMBER(10), name VARCHAR2(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDefaultSchema(); - - Table test1Table = schema.getTableForIdentifier("test1"); - assertNotNull(test1Table); - test1Table = schema.getTableForIdentifier("TEST1"); - assertNotNull(test1Table); - - Table test2Table = schema.getTableForIdentifier("test2"); - assertNotNull(test2Table); - test2Table = schema.getTableForIdentifier("TEST2"); - assertNotNull(test2Table); - - Table test3Table = schema.getTableForIdentifier("\"test3\""); - assertNotNull(test3Table); - test3Table = schema.getTableForIdentifier("test3"); - assertNull(test3Table); - - this.dropTable("test1"); - this.dropTable("TEST2"); - this.dropTable("\"test3\""); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testColumnLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("test"); - - // lowercase - this.executeUpdate("CREATE TABLE test (id NUMBER(10), name VARCHAR2(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Table table = this.getDefaultSchema().getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("id")); - assertNotNull(table.getColumnForIdentifier("name")); - - this.dropTable("test"); - - // uppercase - this.executeUpdate("CREATE TABLE test (ID NUMBER(10), NAME VARCHAR2(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDefaultSchema().getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("ID")); - assertNotNull(table.getColumnForIdentifier("NAME")); - - this.dropTable("test"); - - // mixed case - this.executeUpdate("CREATE TABLE test (Id NUMBER(10), Name VARCHAR2(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDefaultSchema().getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("Id")); - assertNotNull(table.getColumnForIdentifier("Name")); - - this.dropTable("test"); - - // delimited - this.executeUpdate("CREATE TABLE test (\"Id\" NUMBER(10), \"Name\" VARCHAR2(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDefaultSchema().getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("\"Id\"")); - assertNotNull(table.getColumnForIdentifier("\"Name\"")); - - this.dropTable("test"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testCrossSchemaReference() throws Exception { - if ( ! this.connectionProfile.getUserName().toUpperCase().equals("SYS")) { - System.out.println("skipped test: " + this.getClass() + '.' + this.getName()); - return; // SYS does not have a schema - } - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.executeUpdateIgnoreErrors("DROP USER XREF_TEST2 CASCADE"); - this.executeUpdateIgnoreErrors("DROP USER XREF_TEST1 CASCADE"); - - this.executeUpdate("CREATE USER XREF_TEST1 IDENTIFIED BY foo"); - this.executeUpdate("ALTER USER XREF_TEST1 QUOTA UNLIMITED ON USERS"); - this.executeUpdate("CREATE TABLE XREF_TEST1.ORG (ID NUMBER(10) PRIMARY KEY, NAME VARCHAR2(20))"); - - this.executeUpdate("CREATE USER XREF_TEST2 IDENTIFIED BY foo"); - this.executeUpdate("ALTER USER XREF_TEST2 QUOTA UNLIMITED ON USERS"); - this.executeUpdate("GRANT ALL ON XREF_TEST1.ORG TO XREF_TEST2"); - this.executeUpdate("CREATE TABLE XREF_TEST2.EMP (ID NUMBER(10) PRIMARY KEY, NAME VARCHAR2(20), " + - "ORG_ID NUMBER(10) REFERENCES XREF_TEST1.ORG(ID))"); - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - Schema schema1 = this.getDatabase().getSchemaNamed("XREF_TEST1"); - assertNotNull(schema1); - Table orgTable = schema1.getTableNamed("ORG"); - assertNotNull(orgTable); - - Schema schema2 = this.getDatabase().getSchemaNamed("XREF_TEST2"); - assertNotNull(schema2); - Table empTable = schema2.getTableNamed("EMP"); - assertNotNull(empTable); - assertEquals(1, empTable.getForeignKeysSize()); - ForeignKey fk = empTable.getForeignKeys().iterator().next(); - Table refTable = fk.getReferencedTable(); - assertNotNull(refTable); - assertEquals("ORG", refTable.getName()); - assertEquals(1, fk.getColumnPairsSize()); - ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next(); - Column baseColumn = cp.getBaseColumn(); - assertEquals("ORG_ID", baseColumn.getName()); - Column refColumn = cp.getReferencedColumn(); - assertEquals("ID", refColumn.getName()); - - this.executeUpdate("DROP USER XREF_TEST2 CASCADE"); - this.executeUpdate("DROP USER XREF_TEST1 CASCADE"); - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private void dropTable(String tableName) throws Exception { - this.executeUpdateIgnoreErrors("DROP TABLE " + tableName + " CASCADE CONSTRAINTS"); - } - -// need Oracle enablement plug-in -// public void testSequence() throws Exception { -// this.connectionProfile.connect(); -// TestConnectionListener listener = new TestConnectionListener(); -// this.connectionProfile.addConnectionListener(listener); -// -// this.dropSequence("FOO_SEQ"); -// -// this.executeUpdate("CREATE SEQUENCE FOO_SEQ"); -// ((ICatalogObject) this.getDTPDatabase()).refresh(); -// -// Sequence sequence = this.getDatabase().getDefaultSchema().getSequenceForIdentifier("FOO"); -// assertNotNull(sequence); -// assertEquals("FOO_SEQ", sequence.getName()); -// -// this.dropSequence("FOO_SEQ"); -// -// this.connectionProfile.removeConnectionListener(listener); -// this.connectionProfile.disconnect(); -// } -// -// private void dropSequence(String sequenceName) throws Exception { -// this.executeUpdateIgnoreErrors("DROP SEQUENCE " + sequenceName); -// } -// - protected void dumpUserObjects() throws SQLException { - this.dump("select * from user_objects"); - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gXETests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gXETests.java deleted file mode 100644 index d966a9a14b..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gXETests.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - - -/** - * Oracle 10g Thin Driver Test - */ -@SuppressWarnings("nls") -public class Oracle10gXETests extends DTPPlatformTests { - - public Oracle10gXETests( String name) { - super( name); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "oracle10gXE.properties"; - } - - @Override - protected String getDriverName() { - return "Oracle 10g Thin Driver"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.Oracle Thin Driver"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.enablement.oracle.10.driverTemplate"; - } - - @Override - protected String getDatabaseVendor() { - return "Oracle"; - } - - @Override - protected String getDatabaseVersion() { - return "10"; - } - - @Override - protected String getDriverClass() { - return "oracle.jdbc.OracleDriver"; - } - - @Override - protected String getProfileName() { - return "Oracle10g_XE"; - } - - @Override - protected String getProfileDescription() { - return "Oracle10g XE Release 2 (10.2) JDBC Profile [Test]"; - } - - @Override - protected boolean supportsCatalogs() { - return false; - } - - @Override - protected boolean executeOfflineTests() { - // working offline is pretty ugly - return false; - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle9iTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle9iTests.java deleted file mode 100644 index 102e91970d..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle9iTests.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - - -/** - * Oracle 9i Thin Driver Test - */ -@SuppressWarnings("nls") -public class Oracle9iTests extends DTPPlatformTests { - - public Oracle9iTests( String name) { - super( name); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "oracle9i.properties"; - } - - @Override - protected String getDriverName() { - return "Oracle 9i Thin Driver"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.Oracle Thin Driver"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.enablement.oracle.9.driverTemplate"; - } - - @Override - protected String getDatabaseVendor() { - return "Oracle"; - } - - @Override - protected String getDatabaseVersion() { - return "9"; - } - - @Override - protected String getDriverClass() { - return "oracle.jdbc.OracleDriver"; - } - - @Override - protected String getProfileName() { - return "Oracle9i"; - } - - @Override - protected String getProfileDescription() { - return "Oracle9i JDBC Profile [Test]"; - } - - @Override - protected boolean supportsCatalogs() { - return false; - } - - @Override - protected boolean executeOfflineTests() { - // working offline is pretty ugly - return false; - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/PostgreSQLTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/PostgreSQLTests.java deleted file mode 100644 index 6e501a7942..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/PostgreSQLTests.java +++ /dev/null @@ -1,486 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - -import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject; -import org.eclipse.jpt.jpa.db.Column; -import org.eclipse.jpt.jpa.db.ForeignKey; -import org.eclipse.jpt.jpa.db.Schema; -import org.eclipse.jpt.jpa.db.Table; - -@SuppressWarnings("nls") -public class PostgreSQLTests extends DTPPlatformTests { - - public PostgreSQLTests( String name) { - super( name); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "postgresql.properties"; - } - - @Override - protected String getDriverName() { - return "PostgreSQL JDBC Driver"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.PostgreSQL JDBC Driver"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.enablement.postgresql.postgresqlDriverTemplate"; - } - - @Override - protected String getDatabaseVendor() { - return "postgres"; - } - - @Override - protected String getDatabaseVersion() { - return "8.x"; - } - - @Override - protected String getDriverClass() { - return "org.postgresql.Driver"; - } - - @Override - protected String getDefaultJDBCURL() { - // using this URL will result in the DTP database containing a single - // catalog named "" - which, unfortunately, resembles the pseudo-catalog - // generated by DTP for databases that do not return any catalogs via - // JDBC metadata calls... - return "jdbc:postgresql"; - } - - @Override - protected String getProfileName() { - return "PostgreSQL"; - } - - @Override - protected String getProfileDescription() { - return "PostgreSQL 8.2 JDBC Profile [Test]"; - } - - @Override - protected boolean supportsCatalogs() { - return true; - } - - @Override - protected boolean executeOfflineTests() { - // DTP does not support PostgreSQL off-line - see 226704/241558 - return false; - } - - public void testSchema() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropSchema("TEST1"); - this.dropSchema("TEST2"); - - this.executeUpdate("CREATE SCHEMA TEST1"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema1 = this.getDefaultCatalog().getSchemaForIdentifier("TEST1"); - assertNotNull(schema1); - - this.executeUpdate("CREATE SCHEMA TEST2"); - Schema schema2 = this.getDefaultCatalog().getSchemaForIdentifier("TEST2"); - assertNull(schema2); // should be null until refresh - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - assertSame(this.getDatabase(), listener.changedDatabase); - - schema2 = this.getDefaultCatalog().getSchemaForIdentifier("TEST2"); - assertNotNull(schema2); - assertNotSame(schema1, this.getDefaultCatalog().getSchemaForIdentifier("TEST1")); // we should have a new schema after the refresh - - this.dropSchema("TEST2"); - this.dropSchema("TEST1"); - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testSchemaLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropSchema("LOOKUP_TEST"); - this.dropSchema("\"lookup_TEST\""); - - this.executeUpdate("CREATE SCHEMA LOOKUP_TEST"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - assertNull(this.getDefaultCatalog().getSchemaNamed("LOOKUP_TEST")); - assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST")); - - assertNotNull(this.getDefaultCatalog().getSchemaNamed("lookup_test")); - assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_test")); - - assertNull(this.getDefaultCatalog().getSchemaNamed("lookup_TEST")); - assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_TEST")); - - assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_test\"")); - assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\"")); - assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"LOOKUP_TEST\"")); - - this.dropSchema("LOOKUP_TEST"); - - this.executeUpdate("CREATE SCHEMA \"lookup_TEST\""); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - assertNull(this.getDefaultCatalog().getSchemaNamed("LOOKUP_TEST")); - assertNull(this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST")); - - assertNull(this.getDefaultCatalog().getSchemaNamed("lookup_test")); - assertNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_test")); - - assertNotNull(this.getDefaultCatalog().getSchemaNamed("lookup_TEST")); - assertNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_TEST")); - - assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"LOOKUP_TEST\"")); - assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\"")); - - this.dropSchema("\"lookup_TEST\""); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testSchemaIdentifier() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropSchema("LOOKUP_TEST"); - this.dropSchema("\"lookup_TEST\""); - - this.executeUpdate("CREATE SCHEMA lookup_test"); // this gets folded to lowercase - this.executeUpdate("CREATE SCHEMA \"lookup_TEST\""); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST"); - assertEquals("lookup_test", schema.getIdentifier()); - assertEquals("lookup_test", schema.getIdentifier("LookupTest")); - assertNull(schema.getIdentifier("Lookup_Test")); - - schema = this.getDefaultCatalog().getSchemaNamed("lookup_test"); - assertEquals("lookup_test", schema.getIdentifier()); - - schema = this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\""); - assertEquals("\"lookup_TEST\"", schema.getIdentifier()); - assertEquals("\"lookup_TEST\"", schema.getIdentifier("lookup_TEST")); - - this.dropSchema("\"lookup_TEST\""); - this.dropSchema("LOOKUP_TEST"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testTable() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("TABLE_TEST", "FOO_BAZ"); - this.dropTable("TABLE_TEST", "BAZ"); - this.dropTable("TABLE_TEST", "FOO"); - this.dropTable("TABLE_TEST", "BAR"); - this.dropSchema("TABLE_TEST"); - - this.executeUpdate("CREATE SCHEMA TABLE_TEST"); - this.executeUpdate("SET search_path TO TABLE_TEST"); - - this.executeUpdate(this.buildBarDDL()); - this.executeUpdate(this.buildFooDDL()); - this.executeUpdate(this.buildBazDDL()); - this.executeUpdate(this.buildFooBazDDL()); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST"); - - // FOO - Table fooTable = schema.getTableForIdentifier("FOO"); - assertEquals(3, fooTable.getColumnsSize()); - assertEquals(1, fooTable.getPrimaryKeyColumnsSize()); - assertEquals(1, fooTable.getForeignKeysSize()); - - Column pkColumn = fooTable.getPrimaryKeyColumn(); - assertEquals("id", pkColumn.getName()); - Column idColumn = fooTable.getColumnForIdentifier("ID"); - assertSame(pkColumn, idColumn); - assertEquals("INT4", idColumn.getDataTypeName()); - assertSame(fooTable, idColumn.getTable()); - assertTrue(idColumn.isPartOfPrimaryKey()); - assertFalse(idColumn.isPartOfForeignKey()); - assertEquals("java.lang.Integer", idColumn.getJavaTypeDeclaration()); - - Column nameColumn = fooTable.getColumnForIdentifier("NAME"); - assertEquals("VARCHAR", nameColumn.getDataTypeName()); - assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration()); - assertFalse(nameColumn.isPartOfPrimaryKey()); - - Column barColumn = fooTable.getColumnForIdentifier("BAR_ID"); - assertEquals("INT4", barColumn.getDataTypeName()); - assertTrue(barColumn.isPartOfForeignKey()); - assertFalse(barColumn.isPartOfPrimaryKey()); - - ForeignKey barFK = fooTable.getForeignKeys().iterator().next(); // there should only be 1 foreign key - assertEquals(1, barFK.getColumnPairsSize()); - assertEquals("bar", barFK.getAttributeName()); - assertNull(barFK.getJoinColumnAnnotationIdentifier("bar")); - assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar")); - assertSame(fooTable, barFK.getBaseTable()); - - assertFalse(fooTable.isPossibleJoinTable()); - assertSame(schema, fooTable.getSchema()); - - // BAR - Table barTable = schema.getTableForIdentifier("BAR"); - assertEquals(2, barTable.getColumnsSize()); - assertEquals(1, barTable.getPrimaryKeyColumnsSize()); - assertEquals(0, barTable.getForeignKeysSize()); - assertEquals("id", barTable.getPrimaryKeyColumn().getName()); - assertFalse(barTable.isPossibleJoinTable()); - assertEquals("BYTEA", barTable.getColumnForIdentifier("CHUNK").getDataTypeName()); - assertEquals("byte[]", barTable.getColumnForIdentifier("CHUNK").getJavaTypeDeclaration()); - // assertTrue(barTable.getColumnForIdentifier("CHUNK").dataTypeIsLOB()); - assertSame(barTable, barFK.getReferencedTable()); - - // FOO_BAZ - Table foo_bazTable = schema.getTableForIdentifier("FOO_BAZ"); - assertEquals(2, foo_bazTable.getColumnsSize()); - assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize()); - assertEquals(2, foo_bazTable.getForeignKeysSize()); - assertTrue(foo_bazTable.isPossibleJoinTable()); - assertTrue(foo_bazTable.joinTableNameIsDefault()); - assertTrue(foo_bazTable.getColumnForIdentifier("FOO_ID").isPartOfForeignKey()); - - this.dropTable("TABLE_TEST", "FOO_BAZ"); - this.dropTable("TABLE_TEST", "BAZ"); - this.dropTable("TABLE_TEST", "FOO"); - this.dropTable("TABLE_TEST", "BAR"); - this.dropSchema("TABLE_TEST"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private static final String CR = System.getProperty("line.separator"); //$NON-NLS-1$ - - private String buildBarDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE BAR (").append(CR); - sb.append(" ID integer PRIMARY KEY,").append(CR); - sb.append(" CHUNK bytea").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE FOO (").append(CR); - sb.append(" ID integer PRIMARY KEY,").append(CR); - sb.append(" NAME varchar(20),").append(CR); - sb.append(" BAR_ID integer REFERENCES BAR(ID)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE BAZ (").append(CR); - sb.append(" ID integer PRIMARY KEY,").append(CR); - sb.append(" NAME varchar(20)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("CREATE TABLE FOO_BAZ (").append(CR); - sb.append(" FOO_ID int REFERENCES FOO(ID),").append(CR); - sb.append(" BAZ_ID int REFERENCES BAZ(ID)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - public void testColumnLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("TABLE_TEST", "test"); - this.dropSchema("TABLE_TEST"); - - this.executeUpdate("CREATE SCHEMA TABLE_TEST"); - this.executeUpdate("SET search_path TO TABLE_TEST"); - - // lowercase - this.executeUpdate("CREATE TABLE test (id int, name varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Table table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("id")); - assertNotNull(table.getColumnForIdentifier("name")); - - this.dropTable("TABLE_TEST", "test"); - - // uppercase - this.executeUpdate("CREATE TABLE test (ID int, NAME varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("ID")); - assertNotNull(table.getColumnForIdentifier("NAME")); - - this.dropTable("TABLE_TEST", "test"); - - // mixed case - this.executeUpdate("CREATE TABLE test (Id int, Name varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("Id")); - assertNotNull(table.getColumnForIdentifier("Name")); - - this.dropTable("TABLE_TEST", "test"); - - // delimited - this.executeUpdate("CREATE TABLE test (\"Id\" int, \"Name\" varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test"); - assertNotNull(table.getColumnForIdentifier("\"Id\"")); - assertNotNull(table.getColumnForIdentifier("\"Name\"")); - - this.dropTable("TABLE_TEST", "test"); - this.dropSchema("TABLE_TEST"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testCrossSchemaReference() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.dropTable("XREF_TEST2", "EMP"); - this.dropSchema("XREF_TEST2"); - this.dropTable("XREF_TEST1", "ORG"); - this.dropSchema("XREF_TEST1"); - - this.executeUpdate("CREATE SCHEMA XREF_TEST1"); - this.executeUpdate("SET search_path TO XREF_TEST1"); - this.executeUpdate("CREATE TABLE ORG (ID integer PRIMARY KEY, NAME varchar(20))"); - - this.executeUpdate("CREATE SCHEMA XREF_TEST2"); - this.executeUpdate("SET search_path TO XREF_TEST2"); - this.executeUpdate("CREATE TABLE EMP (ID integer PRIMARY KEY, NAME varchar(20), " + - "ORG_ID integer REFERENCES XREF_TEST1.ORG(ID))"); - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - Schema schema1 = this.getDefaultCatalog().getSchemaNamed("xref_test1"); - assertNotNull(schema1); - Table orgTable = schema1.getTableNamed("org"); - assertNotNull(orgTable); - - Schema schema2 = this.getDefaultCatalog().getSchemaNamed("xref_test2"); - assertNotNull(schema2); - Table empTable = schema2.getTableNamed("emp"); - assertNotNull(empTable); - assertEquals(1, empTable.getForeignKeysSize()); - ForeignKey fk = empTable.getForeignKeys().iterator().next(); - Table refTable = fk.getReferencedTable(); - assertNotNull(refTable); - assertEquals("org", refTable.getName()); - assertEquals(1, fk.getColumnPairsSize()); - ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next(); - Column baseColumn = cp.getBaseColumn(); - assertEquals("org_id", baseColumn.getName()); - Column refColumn = cp.getReferencedColumn(); - assertEquals("id", refColumn.getName()); - - this.dropTable("XREF_TEST2", "EMP"); - this.dropSchema("XREF_TEST2"); - this.dropTable("XREF_TEST1", "ORG"); - this.dropSchema("XREF_TEST1"); - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private void dropTable(String schemaName, String tableName) throws Exception { - Schema schema= this.getDefaultCatalog().getSchemaForIdentifier(schemaName); - if (schema != null) { - if (schema.getTableForIdentifier(tableName) != null) { - this.executeUpdate("DROP TABLE " + schemaName + '.' + tableName); - } - } - } - - private void dropSchema(String name) throws Exception { - if (this.getDefaultCatalog().getSchemaForIdentifier(name) != null) { - this.executeUpdate("DROP SCHEMA " + name + " CASCADE"); - } - } - -// see 241578/241557 -// public void testSequence() throws Exception { -// this.connectionProfile.connect(); -// TestConnectionListener listener = new TestConnectionListener(); -// this.connectionProfile.addConnectionListener(listener); -// -// this.dropSequence("SEQUENCE_TEST", "FOO"); -// this.dropSchema("SEQUENCE_TEST"); -// -// this.executeUpdate("CREATE SCHEMA SEQUENCE_TEST"); -// this.executeUpdate("SET search_path TO SEQUENCE_TEST"); -// -// this.executeUpdate(this.buildBarDDL()); -// this.executeUpdate("CREATE SEQUENCE FOO START 1"); -//// List<Object[]> list = this.execute("SELECT nextval('foo')"); -//// System.out.println(list); -// ((ICatalogObject) this.getDTPDatabase()).refresh(); -// -// Schema schema = this.getDefaultCatalog().getSchemaNamed("SEQUENCE_TEST"); -// Sequence sequence = schema.getSequenceNamed("FOO"); -// assertNotNull(sequence); -// assertEquals("foo_seq", sequence.getName()); -// -// this.dropSequence("SEQUENCE_TEST", "FOO"); -// this.dropSchema("SEQUENCE_TEST"); -// -// this.connectionProfile.removeConnectionListener(listener); -// this.connectionProfile.disconnect(); -// } -// -// private void dropSequence(String schemaName, String sequenceName) throws Exception { -// Schema schema= this.getDefaultCatalog().getSchemaNamed(schemaName); -// if (schema != null) { -// if (schema.getSequenceNamed(sequenceName) != null) { -// this.executeUpdate("DROP SEQUENCE " + schemaName + '.' + sequenceName); -// } -// } -// } -// -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SQLServerTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SQLServerTests.java deleted file mode 100644 index 346583f282..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SQLServerTests.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - - -/** - * SQL Server 2005 Driver Test - */ -@SuppressWarnings("nls") -public class SQLServerTests extends DTPPlatformTests { - - public SQLServerTests( String name) { - super( name); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "sqlserver.properties"; - } - - @Override - protected String getDriverName() { - return "Microsoft SQL Server 2005 JDBC Driver"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.Microsoft SQL Server 2005 JDBC Driver"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.enablement.msft.sqlserver.2005.driverTemplate"; - } - - @Override - protected String getDatabaseVendor() { - return "SQLServer"; - } - - @Override - protected String getDatabaseVersion() { - return "2005"; - } - - @Override - protected String getDriverClass() { - return "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - } - - @Override - protected String getProfileName() { - return "SQLServer_2005"; - } - - @Override - protected String getProfileDescription() { - return "Microsoft SQL Server 2005 JDBC Profile [Test]"; - } - - @Override - protected String getProviderID() { - return "org.eclipse.datatools.connectivity.db.generic.connectionProfile"; - } - - @Override - protected boolean supportsCatalogs() { - return true; - } - - @Override - protected boolean executeOfflineTests() { - return true; // haven't actually tried this yet... - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SybaseTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SybaseTests.java deleted file mode 100644 index ef91d7ab57..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SybaseTests.java +++ /dev/null @@ -1,443 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.db.tests.internal.platforms; - -import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject; -import org.eclipse.jpt.jpa.db.Catalog; -import org.eclipse.jpt.jpa.db.Column; -import org.eclipse.jpt.jpa.db.ForeignKey; -import org.eclipse.jpt.jpa.db.Schema; -import org.eclipse.jpt.jpa.db.Table; - -@SuppressWarnings("nls") -public class SybaseTests extends DTPPlatformTests { - - public SybaseTests( String name) { - super( name); - } - - @Override - protected String getPlatformPropertiesFileName() { - return "sybase.properties"; - } - - @Override - protected String getDriverName() { - return "Sybase JDBC Driver for Sybase ASE 15.x"; - } - - @Override - protected String getDriverDefinitionID() { - return "DriverDefn.Sybase JDBC Driver for Sybase ASE 15.x"; - } - - @Override - protected String getDriverDefinitionType() { - return "org.eclipse.datatools.connectivity.db.sybase.ase.genericDriverTemplate_15"; - } - - @Override - protected String getDatabaseVendor() { - return "Sybase_ASE"; - } - - @Override - protected String getDatabaseVersion() { - return "15.x"; - } - - @Override - protected String getDriverClass() { - return "com.sybase.jdbc3.jdbc.SybDriver"; - } - - @Override - protected String getProfileName() { - return "Sybase_15"; - } - - @Override - protected String getProfileDescription() { - return "Sybase ASE 15 jConnect JDBC Profile [Test]"; - } - - @Override - protected boolean supportsCatalogs() { - return true; - } - - @Override - protected boolean executeOfflineTests() { - // working offline is pretty ugly - return false; - } - - /** - * Sybase "databases" become DTP "catalogs" - */ - public void testCatalog() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdateIgnoreErrors("drop database test1"); - this.executeUpdateIgnoreErrors("drop database test2"); - - this.executeUpdate("create database test1"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Catalog catalog1 = this.getDatabase().getCatalogNamed("test1"); - assertNotNull(catalog1); - Schema schema1 = catalog1.getSchemaNamed("dbo"); - assertNotNull(schema1); - assertSame(schema1, catalog1.getDefaultSchema()); - - this.executeUpdate("create database test2"); - Catalog catalog2 = this.getDatabase().getCatalogNamed("test2"); - assertNull(catalog2); // should be null until refresh - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - assertSame(this.getDatabase(), listener.changedDatabase); - - catalog2 = this.getDatabase().getCatalogNamed("test2"); - assertNotNull(catalog2); - Schema schema2 = catalog2.getDefaultSchema(); - assertNotNull(schema2); - - assertNotSame(catalog1, this.getDatabase().getCatalogNamed("test1")); // we should have a new catalog after the refresh - assertNotSame(schema1, this.getDatabase().getCatalogNamed("test1").getDefaultSchema()); // we should have a new schema after the refresh - - this.executeUpdate("drop database test2"); - this.executeUpdate("drop database test1"); - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testTable() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdateIgnoreErrors("drop database table_test"); - this.executeUpdate("create database table_test"); - this.getJDBCConnection().setCatalog("table_test"); - - this.executeUpdate(this.buildBarDDL()); - this.executeUpdate(this.buildFooDDL()); - this.executeUpdate(this.buildBazDDL()); - this.executeUpdate(this.buildFooBazDDL()); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDatabase().getCatalogNamed("table_test").getDefaultSchema(); - - // foo - Table fooTable = schema.getTableNamed("foo"); - assertEquals(3, fooTable.getColumnsSize()); - assertEquals(1, fooTable.getPrimaryKeyColumnsSize()); - assertEquals(1, fooTable.getForeignKeysSize()); - - Column pkColumn = fooTable.getPrimaryKeyColumn(); - assertEquals("id", pkColumn.getName()); - Column idColumn = fooTable.getColumnNamed("id"); - assertSame(fooTable, idColumn.getTable()); - assertSame(pkColumn, idColumn); - assertTrue(idColumn.isPartOfPrimaryKey()); - assertFalse(idColumn.isPartOfForeignKey()); - assertTrue(idColumn.isPartOfUniqueConstraint()); - assertFalse(idColumn.isNullable()); - - assertEquals("INT", idColumn.getDataTypeName()); - assertTrue(idColumn.isNumeric()); - assertEquals(0, idColumn.getPrecision()); - assertEquals(0, idColumn.getScale()); - assertEquals(-1, idColumn.getLength()); - assertFalse(idColumn.isLOB()); - assertEquals("int", idColumn.getJavaTypeDeclaration()); - - Column nameColumn = fooTable.getColumnNamed("name"); - assertFalse(nameColumn.isPartOfPrimaryKey()); - assertFalse(nameColumn.isPartOfForeignKey()); - assertTrue(nameColumn.isPartOfUniqueConstraint()); - assertFalse(nameColumn.isNullable()); // implied "NOT NULL" ? - - assertEquals("VARCHAR", nameColumn.getDataTypeName()); - assertFalse(nameColumn.isNumeric()); - assertEquals(-1, nameColumn.getPrecision()); - assertEquals(-1, nameColumn.getScale()); - assertEquals(20, nameColumn.getLength()); - assertFalse(nameColumn.isLOB()); - assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration()); - - Column barColumn = fooTable.getColumnNamed("bar_id"); - assertEquals("INT", barColumn.getDataTypeName()); - assertTrue(barColumn.isPartOfForeignKey()); - assertFalse(barColumn.isPartOfPrimaryKey()); - - ForeignKey barFK = fooTable.getForeignKeys().iterator().next(); // there should only be 1 foreign key - assertEquals(1, barFK.getColumnPairsSize()); - assertEquals("bar", barFK.getAttributeName()); - assertNull(barFK.getJoinColumnAnnotationIdentifier("bar")); - assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar")); - assertSame(fooTable, barFK.getBaseTable()); - - assertFalse(fooTable.isPossibleJoinTable()); - assertSame(schema, fooTable.getSchema()); - - // BAR - Table barTable = schema.getTableNamed("bar"); - assertEquals(2, barTable.getColumnsSize()); - assertEquals(1, barTable.getPrimaryKeyColumnsSize()); - assertEquals(0, barTable.getForeignKeysSize()); - assertEquals("id", barTable.getPrimaryKeyColumn().getName()); - assertFalse(barTable.isPossibleJoinTable()); - Column chunkColumn = barTable.getColumnNamed("chunk"); - assertEquals("IMAGE", chunkColumn.getDataTypeName()); - assertFalse(chunkColumn.isNumeric()); - assertTrue(chunkColumn.isLOB()); - assertEquals("byte[]", chunkColumn.getJavaTypeDeclaration()); - assertSame(barTable, barFK.getReferencedTable()); - - // BAZ - Table bazTable = schema.getTableNamed("baz"); - assertEquals(4, bazTable.getColumnsSize()); - assertEquals(1, bazTable.getPrimaryKeyColumnsSize()); - assertEquals(0, bazTable.getForeignKeysSize()); - - Column nicknameColumn = bazTable.getColumnNamed("nickname"); - assertTrue(nicknameColumn.isNullable()); - - Column songColumn = bazTable.getColumnNamed("song"); - assertFalse(songColumn.isNullable()); - - Column salaryColumn = bazTable.getColumnNamed("salary"); - assertFalse(salaryColumn.isPartOfUniqueConstraint()); - assertEquals("DECIMAL", salaryColumn.getDataTypeName()); - assertTrue(salaryColumn.isNumeric()); - assertEquals(10, salaryColumn.getPrecision()); - assertEquals(2, salaryColumn.getScale()); - assertEquals(-1, salaryColumn.getLength()); - assertFalse(salaryColumn.isLOB()); - - // FOO_BAZ - Table foo_bazTable = schema.getTableNamed("foo_baz"); - assertEquals(2, foo_bazTable.getColumnsSize()); - assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize()); - assertEquals(2, foo_bazTable.getForeignKeysSize()); - assertTrue(foo_bazTable.isPossibleJoinTable()); - assertTrue(foo_bazTable.joinTableNameIsDefault()); - assertTrue(foo_bazTable.getColumnNamed("foo_id").isPartOfForeignKey()); - - this.executeUpdate("drop table foo_baz"); - this.executeUpdate("drop table baz"); - this.executeUpdate("drop table foo"); - this.executeUpdate("drop table bar"); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdate("drop database table_test"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - private static final String CR = System.getProperty("line.separator"); //$NON-NLS-1$ - - private String buildBarDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("create table bar (").append(CR); - sb.append(" id integer primary key,").append(CR); - sb.append(" chunk image").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("create table foo (").append(CR); - sb.append(" id integer primary key,").append(CR); - sb.append(" name varchar(20) unique,").append(CR); - sb.append(" bar_id integer references bar(id)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("create table baz (").append(CR); - sb.append(" id integer primary key,").append(CR); - sb.append(" nickname varchar(20) null,").append(CR); - sb.append(" song varchar(20) not null,").append(CR); - sb.append(" salary decimal(10, 2)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - private String buildFooBazDDL() { - StringBuilder sb = new StringBuilder(200); - sb.append("create table foo_baz (").append(CR); - sb.append(" foo_id integer references foo(id),").append(CR); - sb.append(" baz_id integer references baz(id)").append(CR); - sb.append(")").append(CR); - return sb.toString(); - } - - public void testTableLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdateIgnoreErrors("drop database table_lookup_test"); - this.executeUpdate("create database table_lookup_test"); - this.getJDBCConnection().setCatalog("table_lookup_test"); - - this.executeUpdate("create table test1 (id integer, name varchar(20))"); - this.executeUpdate("create table TEST2 (id integer, name varchar(20))"); - this.executeUpdate("create table [Test3] (id integer, name varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Schema schema = this.getDatabase().getCatalogNamed("table_lookup_test").getDefaultSchema(); - - assertNotNull(schema.getTableNamed("test1")); - assertNotNull(schema.getTableForIdentifier("test1")); - - assertNotNull(schema.getTableNamed("TEST2")); - assertNotNull(schema.getTableForIdentifier("TEST2")); - - assertNotNull(schema.getTableForIdentifier("[Test3]")); - - this.executeUpdate("drop table [Test3]"); - this.executeUpdate("drop table TEST2"); - this.executeUpdate("drop table test1"); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdate("drop database table_lookup_test"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testColumnLookup() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdateIgnoreErrors("drop database column_lookup_test"); - this.executeUpdate("create database column_lookup_test"); - this.getJDBCConnection().setCatalog("column_lookup_test"); - - // lowercase - this.executeUpdate("create table test (id integer, name varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - Table table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnNamed("id")); - assertNotNull(table.getColumnNamed("name")); - - this.executeUpdate("drop table test"); - - // uppercase - this.executeUpdate("create table test (ID integer, NAME varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnForIdentifier("ID")); - assertNotNull(table.getColumnForIdentifier("NAME")); - - this.executeUpdate("drop table test"); - - // mixed case - this.executeUpdate("create table test (Id integer, Name varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnForIdentifier("Id")); - assertNotNull(table.getColumnForIdentifier("Name")); - - this.executeUpdate("drop table test"); - - // delimited - this.executeUpdate("create table test ([Id] integer, [Name] varchar(20))"); - ((ICatalogObject) this.getDTPDatabase()).refresh(); - - table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test"); - assertNotNull(table.getColumnForIdentifier("[Id]")); - assertNotNull(table.getColumnForIdentifier("[Name]")); - - this.executeUpdate("drop table test"); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdate("drop database column_lookup_test"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - - public void testCrossSchemaReference() throws Exception { - this.connectionProfile.connect(); - TestConnectionListener listener = new TestConnectionListener(); - this.connectionProfile.addConnectionListener(listener); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdateIgnoreErrors("drop database xref_test2"); - this.executeUpdateIgnoreErrors("drop database xref_test1"); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdate("create database xref_test1"); - this.getJDBCConnection().setCatalog("xref_test1"); - this.executeUpdate("create table org (id integer primary key, name varchar(20))"); - - this.getJDBCConnection().setCatalog("master"); - this.executeUpdate("create database xref_test2"); - this.getJDBCConnection().setCatalog("xref_test2"); - this.executeUpdate("create table emp (id integer primary key, name varchar(20), " + - "org_id integer references xref_test1..org(id))"); - - ((ICatalogObject) this.getDTPDatabase()).refresh(); - Catalog catalog1 = this.getDatabase().getCatalogNamed("xref_test1"); - assertNotNull(catalog1); - Schema schema1 = catalog1.getSchemaNamed("dbo"); - assertNotNull(schema1); - Table orgTable = schema1.getTableNamed("org"); - assertNotNull(orgTable); - - Catalog catalog2 = this.getDatabase().getCatalogNamed("xref_test2"); - assertNotNull(catalog2); - Schema schema2 = catalog2.getSchemaNamed("dbo"); - assertNotNull(schema2); - Table empTable = schema2.getTableNamed("emp"); - assertNotNull(empTable); - assertEquals(1, empTable.getForeignKeysSize()); - ForeignKey fk = empTable.getForeignKeys().iterator().next(); - Table refTable = fk.getReferencedTable(); - assertNotNull(refTable); - assertEquals("org", refTable.getName()); - assertEquals(1, fk.getColumnPairsSize()); - ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next(); - Column baseColumn = cp.getBaseColumn(); - assertEquals("org_id", baseColumn.getName()); - Column refColumn = cp.getReferencedColumn(); - assertEquals("id", refColumn.getName()); - - this.getJDBCConnection().setCatalog("xref_test2"); - this.executeUpdate("drop table emp"); - this.getJDBCConnection().setCatalog("xref_test1"); - this.executeUpdate("drop table org"); - this.getJDBCConnection().setCatalog("master"); - this.executeUpdate("drop database xref_test2"); - this.executeUpdate("drop database xref_test1"); - - this.connectionProfile.removeConnectionListener(listener); - this.connectionProfile.disconnect(); - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath deleted file mode 100644 index a6a514e2d3..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <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"> - <accessrules> - <accessrule kind="accessible" pattern="org/eclipse/jpt/jpa/gen/**"/> - </accessrules> - </classpathentry> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.cvsignore deleted file mode 100644 index ba077a4031..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project deleted file mode 100644 index b68577b671..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.jpa.gen.tests</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/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 58eaebea70..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Tue Mar 08 12:09:38 EST 2011 -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/jpa/tests/org.eclipse.jpt.jpa.gen.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/META-INF/MANIFEST.MF deleted file mode 100644 index fc42d0ad57..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,14 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.jpa.gen.tests -Bundle-Version: 3.0.0.qualifier -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0", - org.eclipse.jdt.core;bundle-version="3.4.0", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.jpa.db;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.jpa.gen;bundle-version="[2.0.0,3.0.0)", - org.junit;bundle-version="3.8.0" -Export-Package: org.eclipse.jpt.jpa.gen.tests.internal;x-internal:=true diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html +++ /dev/null @@ -1,34 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<HTML> - -<head> -<title>About</title> -<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> -</head> - -<BODY lang="EN-US"> - -<H3>About This Content</H3> - -<P>May 02, 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/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</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> diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties deleted file mode 100644 index 0473587c2b..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties +++ /dev/null @@ -1,16 +0,0 @@ -################################################################################ -# Copyright (c) 2008, 2011 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -bin.includes = .,\ - META-INF/,\ - about.html,\ - test.xml,\ - plugin.properties -source.. = src/ -output.. = bin/ diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/plugin.properties deleted file mode 100644 index f81a674adc..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2006, 2007 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName=Java Persistence Tools Entity Generation Tests -providerName=Eclipse.org diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/EntityGenToolsTests.java b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/EntityGenToolsTests.java deleted file mode 100644 index 25e870f97a..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/EntityGenToolsTests.java +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.gen.tests.internal; - -import java.util.HashSet; -import org.eclipse.jpt.jpa.gen.internal.util.EntityGenTools; - -import junit.framework.TestCase; - -/** - * - */ -@SuppressWarnings("nls") -public class EntityGenToolsTests extends TestCase { - - public EntityGenToolsTests(String name) { - super(name); - } - - public void testConvertToUniqueJavaStyleClassName1() { - HashSet<String> names = new HashSet<String>(); - assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names)); - assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names)); - assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names)); - assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names)); - assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names)); - assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names)); - assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5oo", names)); - } - - public void testConvertToUniqueJavaStyleClassName2() { - HashSet<String> names = new HashSet<String>(); - names.add("Foo"); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names)); - assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names)); - assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5OO", names)); - } - - public void testConvertToUniqueJavaStyleClassName3() { - HashSet<String> names = new HashSet<String>(); - names.add("foo"); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names)); - assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names)); - assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names)); - assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5OO", names)); - } - - public void testConvertToUniqueJavaStyleClassName4() { - HashSet<String> names = new HashSet<String>(); - assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FooBar", names)); - assertEquals("Foo_bar", EntityGenTools.convertToUniqueJavaStyleClassName("foo_bar", names)); - assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR", names)); - assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO_BAR", names)); - assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_", names)); - assertEquals("FooBar_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_*", names)); - assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleClassName("4FOO_BAR", names)); - } - - public void testConvertToUniqueJavaStyleClassName5() { - HashSet<String> names = new HashSet<String>(); - names.add("FooBar"); - assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FooBar", names)); - assertEquals("Foo_bar", EntityGenTools.convertToUniqueJavaStyleClassName("foo_bar", names)); - assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR", names)); - assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO_BAR", names)); - assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_", names)); - assertEquals("FooBar_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_*", names)); - assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleClassName("4FOO_BAR", names)); - } - - public void testConvertToUniqueJavaStyleAttributeName1() { - HashSet<String> names = new HashSet<String>(); - assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names)); - assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names)); - assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names)); - assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names)); - assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names)); - assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names)); - assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5oo", names)); - } - - public void testConvertToUniqueJavaStyleAttributeName2() { - HashSet<String> names = new HashSet<String>(); - names.add("Foo"); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names)); - assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names)); - assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5OO", names)); - } - - public void testConvertToUniqueJavaStyleAttributeName3() { - HashSet<String> names = new HashSet<String>(); - names.add("foo"); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names)); - assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names)); - assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names)); - assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5OO", names)); - } - - public void testConvertToUniqueJavaStyleAttributeName4() { - HashSet<String> names = new HashSet<String>(); - assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FooBar", names)); - assertEquals("foo_bar", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo_bar", names)); - assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR", names)); - assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO_BAR", names)); - assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_", names)); - assertEquals("fooBar_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_*", names)); - assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("4FOO_BAR", names)); - } - - public void testConvertToUniqueJavaStyleAttributeName5() { - HashSet<String> names = new HashSet<String>(); - names.add("FooBar"); - assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FooBar", names)); - assertEquals("foo_bar", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo_bar", names)); - assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR", names)); - assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO_BAR", names)); - assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_", names)); - assertEquals("fooBar_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_*", names)); - assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("4FOO_BAR", names)); - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/JptJpaGenTests.java b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/JptJpaGenTests.java deleted file mode 100644 index 530dd84d72..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/JptJpaGenTests.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jpa.gen.tests.internal; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.jpa.gen.tests.internal.EntityGenToolsTests; - -/** - * - */ -public class JptJpaGenTests { - - public static Test suite() { - TestSuite suite = new TestSuite("JPT Entity Generation Tests"); //$NON-NLS-1$ - suite.addTestSuite(EntityGenToolsTests.class); - return suite; - } - - private JptJpaGenTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml deleted file mode 100644 index 40a027f14a..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0"?> -<!-- - Copyright (c) 2008, 2010 Oracle. 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: - Oracle - initial API and implementation - --> -<project name="testsuite" default="run" basedir="."> - <!-- The property ${eclipse-home} should be passed into this script --> - <!-- Set a meaningful default value for when it is not. --> - <echo message="basedir ${basedir}" /> - <echo message="eclipse place ${eclipse-home}" /> - <!-- sets the properties plugin-name --> - <property name="plugin-name" value="org.eclipse.jpt.jpa.gen.tests"/> - - <!-- This target holds all initialization code that needs to be done for --> - <!-- all tests that are to be run. Initialization for individual tests --> - <!-- should be done within the body of the suite target. --> - <target name="init"> - <tstamp/> - <delete> - <fileset dir="${eclipse-home}" includes="org*.xml"/> - </delete> - </target> - - <!-- This target defines the tests that need to be run. --> - <target name="suite"> - <ant target="gen-test" antfile="${library-file}" dir="${eclipse-home}"> - <property name="plugin-name" value="${plugin-name}"/> - <property name="classname" value="org.eclipse.jpt.jpa.gen.tests.internal.JptJpaGenTests" /> - <property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/> - <property name="extraVMargs" value=""/> - </ant> - </target> - - <!-- This target holds code to cleanup the testing environment after --> - <!-- after all of the tests have been run. You can use this target to --> - <!-- delete temporary files that have been created. --> - <target name="cleanup"> - </target> - - <!-- This target runs the test suite. Any actions that need to happen --> - <!-- after all the tests have been run should go here. --> - <target name="run" depends="init, suite, cleanup"> - </target> -</project>
\ No newline at end of file diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath deleted file mode 100644 index 516ebfb5b7..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <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"> - <accessrules> - <accessrule kind="accessible" pattern="org/eclipse/jpt/jpa/ui/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jpt/jpa/core/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jpt/common/core/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jpt/common/utility/**"/> - </accessrules> - </classpathentry> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.cvsignore deleted file mode 100644 index ba077a4031..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project deleted file mode 100644 index 9b0ee1fe12..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.jpt.jpa.ui.tests</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/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index bde70d36e8..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Tue Mar 08 12:09:52 EST 2011 -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/jpa/tests/org.eclipse.jpt.jpa.ui.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/META-INF/MANIFEST.MF deleted file mode 100644 index 34bfa32e63..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,23 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.jpa.ui.tests -Bundle-Version: 2.0.0.qualifier -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: - org.junit;bundle-version="4.3.1", - org.eclipse.core.resources, - org.eclipse.core.runtime, - org.eclipse.jface, - org.eclipse.jpt.common.core.tests, - org.eclipse.jpt.jpa.core.tests, - org.eclipse.jpt.jpa.core.tests.extension.resource, - org.eclipse.jpt.common.utility, - org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jpa.ui, - org.eclipse.ui.navigator;bundle-version="3.4.0", - org.eclipse.ui.forms;bundle-version="3.3.100", - org.eclipse.ui.workbench;bundle-version="3.4.0" -Export-Package: org.eclipse.jpt.jpa.ui.tests;x-internal:=true, - org.eclipse.jpt.jpa.ui.tests.internal.platform;x-internal:=true diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/build.properties b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/build.properties deleted file mode 100644 index 50f0aa3fd9..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -################################################################################ -# Copyright (c) 2007, 2010 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - . diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/plugin.properties deleted file mode 100644 index ac887adeab..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2006, 2007 Oracle. 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: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName=Dali Java Persistence Tools - UI Tests -providerName=Eclipse Web Tools Platform diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/JptUiTests.java b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/JptUiTests.java deleted file mode 100644 index d52779117a..0000000000 --- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/JptUiTests.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. 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: - * Oracle - initial API and implementation - *********************************************************** |