From 9a965d4e0ed253a5fd77df6ee0762b0677d73183 Mon Sep 17 00:00:00 2001 From: Dariusz Luksza Date: Wed, 10 Oct 2012 12:29:58 +0200 Subject: [PATCH] GWT plugin archetype Adds example GWT based Web UI plugin archetype. Change-Id: Ib11c1571522ced54c6bf74cd1a0aff71da406c3b Signed-off-by: Dariusz Luksza --- gerrit-plugin-gwt-archetype/.gitignore | 5 + gerrit-plugin-gwt-archetype/pom.xml | 53 +++++ .../META-INF/maven/archetype-metadata.xml | 56 +++++ .../resources/archetype-resources/.gitignore | 5 + .../resources/archetype-resources/LICENSE | 201 ++++++++++++++++++ .../resources/archetype-resources/pom.xml | 131 ++++++++++++ .../src/main/java/HelloPlugins.gwt.xml | 29 +++ .../src/main/java/Module.java | 26 +++ .../src/main/java/client/HelloPlugins.java | 72 +++++++ .../gwt-hello-gadgets-igoogle-thumb.png | Bin 0 -> 6722 bytes .../java/public/gwt-hello-gadgets-igoogle.png | Bin 0 -> 17669 bytes .../src/main/java/public/hello.css | 103 +++++++++ pom.xml | 1 + 13 files changed, 682 insertions(+) create mode 100644 gerrit-plugin-gwt-archetype/.gitignore create mode 100644 gerrit-plugin-gwt-archetype/pom.xml create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/.gitignore create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/LICENSE create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/pom.xml create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/HelloPlugins.gwt.xml create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/Module.java create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/client/HelloPlugins.java create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/gwt-hello-gadgets-igoogle-thumb.png create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/gwt-hello-gadgets-igoogle.png create mode 100644 gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/hello.css diff --git a/gerrit-plugin-gwt-archetype/.gitignore b/gerrit-plugin-gwt-archetype/.gitignore new file mode 100644 index 0000000000..80d62575a1 --- /dev/null +++ b/gerrit-plugin-gwt-archetype/.gitignore @@ -0,0 +1,5 @@ +/target +/.classpath +/.project +/.settings/org.maven.ide.eclipse.prefs +/.settings/org.eclipse.m2e.core.prefs diff --git a/gerrit-plugin-gwt-archetype/pom.xml b/gerrit-plugin-gwt-archetype/pom.xml new file mode 100644 index 0000000000..91cd142b88 --- /dev/null +++ b/gerrit-plugin-gwt-archetype/pom.xml @@ -0,0 +1,53 @@ + + + + 4.0.0 + + + com.google.gerrit + gerrit-parent + 2.6-SNAPSHOT + + + gerrit-plugin-gwt-archetype + Gerrit Code Review - Web Ui GWT Plugin Archetype + + + ${project.version} + + + + + + src/main/resources + true + + META-INF/maven/archetype-metadata.xml + + + + src/main/resources + false + + META-INF/maven/archetype-metadata.xml + + + + + + diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/gerrit-plugin-gwt-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml new file mode 100644 index 0000000000..78f2941d1d --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + ${defaultGerritApiVersion} + + + + + + src/main/java + + **/*.css + **/*.png + **/*.java + **/*.gwt.xml + + + + + src/main/resources/Documentation + + **/*.md + + + + + + + .gitignore + LICENSE + + + + diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/.gitignore b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/.gitignore new file mode 100644 index 0000000000..80d62575a1 --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/.gitignore @@ -0,0 +1,5 @@ +/target +/.classpath +/.project +/.settings/org.maven.ide.eclipse.prefs +/.settings/org.eclipse.m2e.core.prefs diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/LICENSE b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/LICENSE new file mode 100644 index 0000000000..11069edd79 --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) 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. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/pom.xml b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/pom.xml new file mode 100644 index 0000000000..3904e2b13a --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,131 @@ + + + 4.0.0 + + ${groupId} + ${artifactId} + jar + ${version} + ${pluginName} + + + extension + ${gerritApiVersion} + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + **/*.* + + + + ${package}.Module + + ${Implementation-Vendor} + ${Implementation-Url} + + ${Gerrit-ApiType} ${project.artifactId} + ${project.version} + + ${Gerrit-ApiType} + ${Gerrit-ApiVersion} + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.6 + 1.6 + UTF-8 + + + + + org.codehaus.mojo + gwt-maven-plugin + ${Gwt-Version} + + ${package}.HelloPlugins + true + true + ${project.build.directory}/classes/static + + + + + compile + + + + + + + + + + + com.google.gerrit + gerrit-${Gerrit-ApiType}-api + ${Gerrit-ApiVersion} + provided + + + + com.google.gerrit + gerrit-plugin-gwtui + ${Gerrit-ApiVersion} + + + + com.google.gwt + gwt-user + ${Gwt-Version} + provided + + + + junit + junit + 4.8.1 + test + + + + + + gerrit-api-repository +#if ($gerritApiVersion.endsWith("SNAPSHOT")) + https://gerrit-api.commondatastorage.googleapis.com/snapshot/ +#else + https://gerrit-api.commondatastorage.googleapis.com/release/ +#end + + + diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/HelloPlugins.gwt.xml b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/HelloPlugins.gwt.xml new file mode 100644 index 0000000000..4c70fcc0f6 --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/HelloPlugins.gwt.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/Module.java b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/Module.java new file mode 100644 index 0000000000..d42545a76d --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/Module.java @@ -0,0 +1,26 @@ +// Copyright (C) 2012 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package ${package}; + +import com.google.inject.AbstractModule; +import com.google.gerrit.extensions.webui.WebUiPlugin; +import com.google.gerrit.extensions.webui.GwtPlugin; + +class Module extends AbstractModule { + @Override + protected void configure() { + bind(WebUiPlugin.class).toInstance(new GwtPlugin("hello_gwt_plugins")); + } +} diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/client/HelloPlugins.java b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/client/HelloPlugins.java new file mode 100644 index 0000000000..5584d8559b --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/client/HelloPlugins.java @@ -0,0 +1,72 @@ +// Copyright (C) 2012 Google Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package ${package}.client; + +import com.google.gerrit.client.Plugin; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.DialogBox; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.RootPanel; +import com.google.gwt.user.client.ui.VerticalPanel; + +/** + * HelloWorld Plugins. + */ +public class HelloPlugins extends Plugin { + + @Override + public void onModuleLoad() { + Image img = new Image("http://code.google.com/webtoolkit/logo-185x175.png"); + Button button = new Button("Click me"); + + VerticalPanel vPanel = new VerticalPanel(); + vPanel.setWidth("100%"); + vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER); + vPanel.add(img); + vPanel.add(button); + + RootPanel.get().add(vPanel); + + // Create the dialog box + final DialogBox dialogBox = new DialogBox(); + + // The content of the dialog comes from a User specified Preference + dialogBox.setText("Hello from GWT Gerrit UI plugin"); + dialogBox.setAnimationEnabled(true); + Button closeButton = new Button("Close"); + VerticalPanel dialogVPanel = new VerticalPanel(); + dialogVPanel.setWidth("100%"); + dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER); + dialogVPanel.add(closeButton); + + closeButton.addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + dialogBox.hide(); + } + }); + + // Set the contents of the Widget + dialogBox.setWidget(dialogVPanel); + + button.addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + dialogBox.center(); + dialogBox.show(); + } + }); + } +} diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/gwt-hello-gadgets-igoogle-thumb.png b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/gwt-hello-gadgets-igoogle-thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e970774d149f2dfd59b00a061d49975c7dd08d46 GIT binary patch literal 6722 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 Y4<1g)Xn~(aZU6uP07*qoM6N<$f^qOIy#N3J literal 0 HcmV?d00001 diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/gwt-hello-gadgets-igoogle.png b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/gwt-hello-gadgets-igoogle.png new file mode 100644 index 0000000000000000000000000000000000000000..c041149c58d2e53f9d8a3ef6f74c18fe2950919b GIT binary patch literal 17669 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 literal 0 HcmV?d00001 diff --git a/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/hello.css b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/hello.css new file mode 100644 index 0000000000..a88059d3b0 --- /dev/null +++ b/gerrit-plugin-gwt-archetype/src/main/resources/archetype-resources/src/main/java/public/hello.css @@ -0,0 +1,103 @@ +/** + * The file contains styles for a sample plugin derived from the + * GWT standard theme. + * Images in the stylesheet have been removed, as well as styles for widgets + * not currently in use. + */ + +body, table td, select { + font-family: Arial Unicode MS, Arial, sans-serif; + font-size: small; +} +pre { + font-family: "courier new", courier; + font-size: small; +} +body { + color: black; + margin: 0px; + border: 0px; + padding: 0px; + background: #fff; + direction: ltr; +} +a, a:visited, a:hover { + color: #0000AA; +} + +/** + * The reference theme can be used to determine when this style sheet has + * loaded. Create a hidden div element with absolute position, assign the style + * name below, and attach it to the DOM. Use a timer to detect when the + * element's height and width are set to 5px. + */ +.gwt-Reference-standard { + height: 5px; + width: 5px; + zoom: 1; +} + +.gwt-Button { + margin: 0; + padding: 3px 5px; + text-decoration: none; + font-size: small; + cursor: pointer; + cursor: hand; + border: 1px outset #ccc; +} +.gwt-Button:active { + border: 1px inset #ccc; +} +.gwt-Button:hover { + border-color: #9cf #69e #69e #7af; +} +.gwt-Button[disabled] { + cursor: default; + color: #888; +} +.gwt-Button[disabled]:hover { + border: 1px outset #ccc; +} + +.gwt-DialogBox .Caption { + background: #e3e8f3; + padding: 4px 4px 4px 8px; + cursor: default; + border-bottom: 1px solid #bbbbbb; + border-top: 5px solid #d0e4f6; + border-left: 5px solid #d0e4f6; + border-right: 5px solid #d0e4f6; +} + +.gwt-DialogBox .dialogContent { +} + +.gwt-DialogBox .dialogMiddleCenter { + padding: 3px; + background: white; + border-left: 5px solid #d0e4f6; + border-right: 5px solid #d0e4f6; + border-bottom: 5px solid #d0e4f6; +} + +.gwt-DialogBox .dialogTopLeftInner { + width: 5px; + zoom: 1; +} +.gwt-DialogBox .dialogTopRightInner { + width: 8px; + zoom: 1; +} +.gwt-DialogBox .dialogBottomLeftInner { + width: 5px; + height: 8px; + zoom: 1; +} + +.gwt-DialogBox .dialogBottomRightInner { + width: 5px; + height: 8px; + zoom: 1; +} + diff --git a/pom.xml b/pom.xml index d877107f84..bcfc0af96f 100644 --- a/pom.xml +++ b/pom.xml @@ -100,6 +100,7 @@ limitations under the License. gerrit-plugin-archetype gerrit-plugin-gwtui gerrit-plugin-js-archetype + gerrit-plugin-gwt-archetype