views:

1378

answers:

4

Greetings , I have been using GWT for few weeks and wanted a rich Table widget.I came across with SmartGWT library. Can I use SmartGWT widgets same way I develop using GWT or is there any special things I need to know ?

thanks

+1  A: 

Essentially, yes. You may also consider Ext GWT (http://www.extjs.com/products/gxt), which is the same thing - a set of rich wrappers around GWT classes.

spork
+2  A: 

You would not be able to just choose a widget from SmartGWT as they rely on the rest of the framework. SmartGWT is a thin wrapper using JSNI around the SmartClient library. This is a nice library, but you need to adopt it all or none.

I believe this misses the point of GWT as you are just wrapping Javascript, so if Google adds support for another browser, you will not be able to support it SmartClient does. Also, you miss all the new benefits of Code Splitting etc as the JS library will always download in full. You may be able to split the GWT code though.

ExtGWT is another choice. This is a full Java implementation. It's still an all or nothing approach, but at least it does leverage the GWT compiler to the full.

Do make sure you check the licenses of each as I believe the SmartGWT one is a bit more liberal that ExtGWT.

There is always the widgets in the GWT Incubator and GWT Mosaic projects. These are written to be very tightly knitted to GWT. Indeed the code in the Incubator may find its way into GWT when it matures. There is a nice table widget in the Incubator I believe.

I hope this helps a bit.

Kango_V
This post is factually incorrect: see my post further down. In short:1. with SmartGWT, code splitting still works for your application code, so you still get the benefits for large applications, which is where this feature matters most2. GWT "wrappers" have advantages and disadvantages, for example, SmartGWT has extremely strong runtime inspection tools that work in production deployments, where GWT is obfuscated and cannot provide similar tools. Wrappers do not "miss the point" of GWT and the authors of GWT itself are aware of the "wrapper" approach and see it as a valid use case.
Charles Kendrick
It would be nice when you post like this, you tell people that you are biased (not a bad thing). That you are the developer of SmartClient. Take Emmanuel Bernard's lead, as he does this.When using SmartClient we found that we had very small amounts of java code, so code splitting was pretty useless.
Kango_V
I am already doing so. My profile says I'm the CTO of Isomorphic Software, and when I state an opinion as opposed to a fact, I typically point this out inline as well.As I mentioned, code splitting still provides benefits specifically for large applications.Would appreciate it if you could edit your post to remove the factual error re: all or none adoption. This is not a matter of opinion, what you said is simply not true. it is common to adopt specific SmartGWT widgets, for example, the Calendar.
Charles Kendrick
+1  A: 

Yes.You can use smartgwt.But do not combine GWT and smartGWT.Adding smartgwt widget in GWT widget is not supported very well.You can try Advanced GWT also.

http://advanced-gwt.sourceforge.net/demo/index.html

BlackPanther
+2  A: 

Yes, you can adopt a single widget from SmartGWT, it does have caveats.

As another poster pointed out, you will be loading most of the core SmartClient runtime. You can avoid loading parts of the SmartClient runtime that you do not need by inheriting the SmartGwtNoScript module and including only the underlying SmartClient modules you actually use (basically Core, Foundation, Grids).

This is still going to be a large grid component, so think it through.

  1. Are your users on high speed connections? Then they'll never notice, go for it.

  2. Do they use the application for a while, or use it frequently? Then the one-time download is worth it because the SmartGWT grid does a good job of cutting down on network requests during actual use:

    http://www.smartclient.com/smartgwt/showcase/#grid%5Fadaptive%5Ffilter%5Ffeatured%5Fcategory

  3. Do you have end users that need or could use 'livegrid'-style load on demand, full-row customizable inline editing, frozen columns, dynamic grouping, adaptive inline filtering, expandable rows, maybe some combination of these features all at once? Then it's worth it in order to deliver a better application, make users more productive or sell more product.

  4. Just need a basic table display? Then yes, it's overkill.

The poster that said this is not possible was factually incorrect and that answer should be voted down.

Charles Kendrick
Please do not ask for posts to be voted down because you do not agree with them, or when it goes against the product you develop. It really does not portray you in good light.
Kango_V
I'm not. The post should be voted down because it is factually incorrect and for no other reason than that. It says "you need to adopt it all or none" and that is not true, it is common to adopt specific SmartGWT widgets, for example, the Calendar.
Charles Kendrick