没有任何数据可供显示
开源项目社区 | 当前位置 : |
|
www.trustie.net/open_source_projects | 主页 > 开源项目社区 > javaongems |
javaongems
|
0 | 0 | 13 |
贡献者 | 讨论 | 代码提交 |
Java on Gems README file
1. INTRODUCTION
Java on Gems (hereafter refererred to as Gems) is a framework extension for
the Google Widget Toolkit (GWT).
Gems is an acronym for (G)WT (E)xtension (M)odule(S). The reason why the name
Java has been prepended to Gems, is because unlike other GWT libraries
available, this library will be all Java with no more than 20% JSNI!
I use GWT to get as far away from Javascript as possible. Hence, the last
thing I want in a library is more Javascript dependencies.
Most Javascript libraries/widgets depend on Prototype and/or Scriptaculous to
function. This means that a GWT widget would need to wrap that library in JSNI
and then need to include both Prototype and/or script.aculo.us as part of the
distribution.
Instead, a Gems approach would be to port the functionality to pure Java and
leverage GWT’s JRE and user library for everything else.
Indeed, this is a violation of the following principle that I value:
“Minimize duplication/reinvention, maximize leverage”
Many will argue - why duplicate, when it is possible to leverage the
Javascript libraries/widgets in their current form. Based on my experiences,
the pain and suffering of porting and maintaining the code is significantly
less than attempting to debug and understand the semantics of a Javascript
implementation. Furthermore, the GWT Compiler optimizes the Java
implementation which may well make it more efficient.
2. CHANGES
GemsV2 is a significant overhaul of the original Gems project. Note, The
original source is still available in a tag and branch. However, this
release of Gems has a heavy client side focus. GemsV1 was based on my first
large content management system application that was built on GWT. However,
since then, my understanding of GWT and its sweet-spots has evolved. This
does not invalidate the need for many of the server side feature in GemsV1.
Some of these features may will re-appear, but will likely be heavily
refactored to take advantage of new GWT features and greater system knowledge.
- Dont assume your defect fixes to GWT user library will get picked and
incorporated into the GWT distribution - Dont hack around with the module bootstrap process. This process logic
has changed between major releases and porting will hurt. It is also
likely to change again when dynamic module linking is supported - Learn to live with GWT's widget API. Dont attempt to create a new component
model (regardless of how much better it is) unless you have the support
of a community. It is likely that you will only end up creating these
scaffolds which will ultimately not get leveraged by others.
- jclient GWT-RPC
- use gwt-rpc from native java clients (or from a java container/server)
- Google Widget Kit (gwk)
- <>
- Abstract Page Controller
- Abstract Page Coordinator
- <>
- Page Panel (from Google groups BETA) (keyboard support)
- Card (from GMail & Google groups BETA) (keyboard support)
- Card Deck (from GMail & Google groups BETA)
- Application Link Bar
- Search Bar
- Rico
- Transition
- Opacity Effect
- Size And Position Effect
- Reverse ZK (rzk)
- Splitter (keyboard support)
- Standard widget extensions to GWT user (std)
- <>
- Abstract View Controller
- <>
- History Utils
- Str Tokenizer
- Endpoint Utils
- <>
- Div Panel
- East West Horiz Panels
- Listenable Stack Panel
- Winforms
- <>
- Outlook Bar (no keyboard support)
- Outlook Bar Item
- Outlook Bar List
4. SAMPLE APPLICATION
The GemsV1 project was heavily leveraged in the Juls project. However, the
original Juls project has not been refactored to incorporate the GemV2
features. This project may get revitalised at another point in time.
Instead, a new project named "gwt-Petstore" has been created which fully
leverages the GemsV2 functionality.
5. RESOURCES
[[Gems Official website|http://javaongems.org/]]
[[Gems User issue registry|http://code.google.com/p/javaongems/issues/list]]
[[Gems User svn repository|http://javaongems.googlecode.com/svn/]]
[[gwt-Petstore public website|http://code.google.com/p/gwtpetstore/]]
[[gwt-Petstore issue registry|http://code.google.com/p/gwtpetstore/issues/list]]
[[gwt-Petstore svn repository|http://gwtpetstore.googlecode.com/svn/trunk/]]
[[GWT Official website|http://code.google.com/webtoolkit/]]
[[GWT Google group|http://groups.google.com/group/Google-Web-Toolkit]]
5. DIRECT CONTACT
If you want direct correspondence from gworks then please contact us on
support@gworks.com.au
rgds ash