Standard/Simple GWT CSS?

89 views
Skip to first unread message

dhoffer

unread,
Dec 4, 2008, 10:50:49 AM12/4/08
to Google Web Toolkit
I'm coming from a Java background and new to GWT and I don't know
CSS. Is there some sample/basic CSS available I can use until I am
able to get up-to-speed on CSS?

I am using <inherits
name='com.google.gwt.user.theme.standard.Standard'/> in my xml file
but that only seems to provide very basic style information.

Does someone have some standard/simple CSS available for standard GWT
widgets/panels?

-Dave

Arthur Kalmenson

unread,
Dec 6, 2008, 8:56:41 PM12/6/08
to Google-We...@googlegroups.com
What do you mean provide simple information? The standard theme gives
you some basic GWT themes while you work through your application. The
CSS class for each widget is available in the Javadoc.

--
Arthur Kalmenson

David Hoffer

unread,
Dec 6, 2008, 10:10:52 PM12/6/08
to Google-We...@googlegroups.com
Well I'm new to GWT and I don't know CSS.

What I would like is CSS for the standard GWT widgets & panels that
would give some some standard look (such as a Windows platform look).
I applied one of the standard GWT themes and it helped some,
especially menus but buttons, trees, etc look quite bad.

As another example, I would like DialogBox panels to have a
frame/window around them; currently there is no frame so they don't
don't even look like a modal frame with a caption bar that you can
drag around, etc. Essentially I would like the GUI to look like a
Windows or Mac application. With this look I can begin to show the
application to gain acceptance of GWT, with the current look they are
not likely to be impressed.

I would have thought someone would have created standard CSS for this.
Perhaps I don't understand how CSS works in GWT.

-Dave

Ian Bambury

unread,
Dec 6, 2008, 10:25:07 PM12/6/08
to Google-We...@googlegroups.com
Desktop apps are styled by the OS to fit the look and feel. You don't get many desktop app designers. Some, but not many. No one asks for VB and PhotoShop.

People don't expect web sites to look exactly like a Mac. Especially not on a Windows machine.

HTML doesn't come with a standard (or any) look. Nor does JavaScript. And GWT is HTML and JavaScript.

And no-one wants their web site to look exactly like someone else's.

Sorry, but I think you are going to have to let your creative flair loose. You might even get to like it.

gregor

unread,
Dec 7, 2008, 8:32:44 AM12/7/08
to Google Web Toolkit
Hi Dave,

I think you really need to get to grips with CSS, the HTML box model
and learn to use GIMP/Photoshop to work effectively with GWT - or hire
a graphic designer to get you off the ground. As Ian says, you get the
L&F for free in Swing, SWT or .NET, but you don't in javascript/HTML

JS libraries with GWT wrappers like the Ext family and SmartGWT offer
out of the box windows L&F and widget sets. But this comes at a heavy
price in terms of performance since it all has to be meticulously
drawn in HTML bit by teeny bit. They may look very pretty, but your
users will soon tire of that if they have to wait seconds for the app
to respond every time they click a button.

I would revisit your UI design strategy and assumptions. IMO you do
not need to slavishly follow windows idioms to write a good business
application UI in GWT - and GWT apps work like greased lightning if
you don't. You just need to think out of the box and play to javacript/
DHTML and the browser's strengths rather than fight against the grain
of how they work.

Another thing to consider is that most everyone knows the difference
between a desktop app and a web app - they use both every day - so
they are comfortable with both styles. The more windows style idioms
you put in a GWT application the more signals you are giving the user
that "This app works like a desktop app" so you find yourself on a
slippery slope of having to make *everything* emulate the desktop
style to meet that expectation. Very expensive to write and
performance sapping.

On the other hand your users might equally say "Ah ha, this app works
like a web app. It works really fast too. Cool". Ask yourself why
Google didn't copy Outlook when they designed GMail's UI.

regards
gregor

On Dec 7, 3:25 am, "Ian Bambury" <ianbamb...@gmail.com> wrote:
> Desktop apps are styled by the OS to fit the look and feel. You don't get
> many desktop app designers. Some, but not many. No one asks for VB and
> PhotoShop.
> People don't expect web sites to look exactly like a Mac. Especially not on
> a Windows machine.
>
> HTML doesn't come with a standard (or any) look. Nor does JavaScript. And
> GWT is HTML and JavaScript.
>
> And no-one wants their web site to look exactly like someone else's.
>
> Sorry, but I think you are going to have to let your creative flair loose.
> You might even get to like it.
>
> Ian
>
> http://examples.roughian.com
>
> 2008/12/7 David Hoffer <dhoff...@gmail.com>
>
>
>
> > Well I'm new to GWT and I don't know CSS.
>
> > What I would like is CSS for the standard GWT widgets & panels that
> > would give some some standard look (such as a Windows platform look).
> > I applied one of the standard GWT themes and it helped some,
> > especially menus but buttons, trees, etc look quite bad.
>
> > As another example, I would like DialogBox panels to have a
> > frame/window around them; currently there is no frame so they don't
> > don't even look like a modal frame with a caption bar that you can
> > drag around, etc.  Essentially I would like the GUI to look like a
> > Windows or Mac application.  With this look I can begin to show the
> > application to gain acceptance of GWT, with the current look they are
> > not likely to be impressed.
>
> > I would have thought someone would have created standard CSS for this.
> >  Perhaps I don't understand how CSS works in GWT.
>
> > -Dave
>
> > On Sat, Dec 6, 2008 at 6:56 PM, Arthur Kalmenson <arthur.k...@gmail.com>
> > wrote:
>
> > > What do you mean provide simple information? The standard theme gives
> > > you some basic GWT themes while you work through your application. The
> > > CSS class for each widget is available in the Javadoc.
>
> > > --
> > > Arthur Kalmenson
>

David Hoffer

unread,
Dec 7, 2008, 9:38:10 AM12/7/08
to Google-We...@googlegroups.com
Hi Gregor,

Thanks for the reply. I don't disagree with what you say, I'm sure I
do need to learn CSS and specifically how GWT makes use of it.

However I do want to point out that I think Google missed it a little
in this area. The fundamental selling point of GWT for us at least is
that we can stay with our well known programing language/technique
(Java) and write a high quality web app as well. Actually in our case
we are taking it one step further our app is implemented in both Swing
and GWT. The Swing & GWT UI layers are as thin as possible, all the
business logic is shared between both implementations. You can think
of our app as a pure MVC app where the M & C are shared and only the
view is separate code.

However since GWT did not let us set the L&L in Java code its not
really true that you can just use Java. Perhaps there are reasons for
this I will understand when I learn CSS but I would have preferred
that GWT provide some satisfactory L&L right out of the box and also
allow developers to write specialized CSS.

You are right that web apps don't typically behave like platform apps
(Windows, Mac), I was only using those as examples. The simple GWT
style could be something else.

I will check out Ian's web site and see if I can get up to speed on CSS quickly.

-Dave

Ian Bambury

unread,
Dec 7, 2008, 10:17:26 AM12/7/08
to Google-We...@googlegroups.com
You are not really going to get what you want with any web language although some of the frameworks will let you look like all the other sites that use that framework, and the 'instant web site' and 'web site in a box' applications will let you choose from a number of themes.

Desktop apps have a look and feel because they are extending the OS and for a long time you had no choice as to what they looked like, you could only move stuff around the window - even the widgets were/are standard like the file-picker in VB et al. There's more freedom in the web, but the price is that you have to do a bit of work.

GWT *does* let you 'just use Java'. You are picking a very specific use of Java and saying you can't use it like that. Like complaining that you can't use a pencil for sketching because it doesn't draw circles properly like it does when it's in a compass :-)

GWT aims to let you write Java and get JavaScript - it does that. It doesn't claim to have you write Java and get CSS or images.


Ian

http://examples.roughian.com


2008/12/7 David Hoffer <dhof...@gmail.com>

tomato

unread,
Dec 7, 2008, 12:45:00 PM12/7/08
to Google Web Toolkit
Hi David,

I'm new too, I don't know much about GWT. I'll risk stating the
obvious here, but I think the Google sample CSS templates can maybe
get you started? They are pretty standard google looks. :)
http://gwt.google.com/samples/Showcase/Showcase.html

Cheers,
tomato

On Dec 7, 7:17 am, "Ian Bambury" <ianbamb...@gmail.com> wrote:
> You are not really going to get what you want with any web language although
> some of the frameworks will let you look like all the other sites that use
> that framework, and the 'instant web site' and 'web site in a box'
> applications will let you choose from a number of themes.
>
> Desktop apps have a look and feel because they are extending the OS and for
> a long time you had no choice as to what they looked like, you could only
> move stuff around the window - even the widgets were/are standard like the
> file-picker in VB et al. There's more freedom in the web, but the price is
> that you have to do a bit of work.
>
> GWT *does* let you 'just use Java'. You are picking a very specific use of
> Java and saying you can't use it like that. Like complaining that you can't
> use a pencil for sketching because it doesn't draw circles properly like it
> does when it's in a compass :-)
>
> GWT aims to let you write Java and get JavaScript - it does that. It doesn't
> claim to have you write Java and get CSS or images.
>
> Ian
>
> http://examples.roughian.com
>
> 2008/12/7 David Hoffer <dhoff...@gmail.com>
>
>
>
> > Hi Gregor,
>
> > Thanks for the reply.  I don't disagree with what you say, I'm sure I
> > do need to learn CSS and specifically how GWT makes use of it.
>
> > However I do want to point out that I think Google missed it a little
> > in this area.  The fundamental selling point of GWT for us at least is
> > that we can stay with our well known programing language/technique
> > (Java) and write a high quality web app as well.  Actually in our case
> > we are taking it one step further our app is implemented in both Swing
> > and GWT.  The Swing & GWT UI layers are as thin as possible, all the
> > business logic is shared between both implementations.  You can think
> > of our app as a pure MVC app where the M & C are shared and only the
> > view is separate code.
>
> > However since GWT did not let us set the L&L in Java code its not
> > really true that you can just use Java.  Perhaps there are reasons for
> > this I will understand when I learn CSS but I would have preferred
> > that GWT provide some satisfactory L&L right out of the box and also
> > allow developers to write specialized CSS.
>
> > You are right that web apps don't typically behave like platform apps
> > (Windows, Mac), I was only using those as examples.  The simple GWT
> > style could be something else.
>
> > I will check out Ian's web site and see if I can get up to speed on CSS
> > quickly.
>
> > -Dave
>
> > On Sun, Dec 7, 2008 at 6:32 AM, gregor <greg.power...@googlemail.com>

David Hoffer

unread,
Dec 7, 2008, 6:05:12 PM12/7/08
to Google-We...@googlegroups.com
Thanks for stating the obvious, I hadn't seen that web site yet.
Okay, I have a couple of CSS newbie questions.

1. What are calls like
disabledButton.ensureDebugId("cwBasicButton-disabled") for? This
isn't a Java like thing.
2. Where do I paste the CSS Style code?

Thanks!
-Dave

gregor

unread,
Dec 7, 2008, 9:57:26 PM12/7/08
to Google Web Toolkit
Hi Dave,

1) I think this might have something to do with debugging client
javascript at run time using Firebug or something - I've never used it
to be honest.

2) I happen to have a simple CSS example to hand, so this might help -
apologies if its too simplistic....

Your module will have its own CSS file next to its HTML file in the
public folder.

If you check the standard theme GWT CSS for DisclosurePanel it looks
like this:

.gwt-DisclosurePanel {
}
.gwt-DisclosurePanel-open {
}
.gwt-DisclosurePanel-closed {
}
.gwt-DisclosurePanel .header,
.gwt-DisclosurePanel .header a,
.gwt-DisclosurePanel .header td {
text-decoration: none; /* Remove underline from header */
color: black;
cursor: pointer;
cursor: hand;
}
.gwt-DisclosurePanel .content {
border-left: 3px solid #e8eef7;
padding: 4px 0px 4px 8px;
margin-left: 6px;
}

Notice that it starts with gwt-DisclosurePanel - this is the primary
style name given to this widget. In the DisclosurePanel source
somewhere you will find setStylePrimaryStyleName("gwt-
DisclosurePanel"). Elsewhere in the code you will find they assign the
various sub-styles to individual components of DisplosurePanel using
add/removeStyleName(styleName) or add/removeStyleDependentName
(styleSuffix) corresponding to e.g.gwt-DisclosurePanel-open and e.g.
gwt-DisclosurePanel .header respectively (or is it the other way
round, it's late). So the java code switches between the -open and -
closed styles in response to user clicks etc, but the primary style is
always the same.

(This is how to go about using CSS when you design your own composite
widgets - follow what they do)

Now you have two choices how to proceed to start with.

1) don't use a standard theme, but keep a copy of one of them (i.e.
the CSS files) handy so you can cut and paste the CSS format for each
widget into your own module CSS file where you can edit it how you
like - you just need to do each one as you need it.
2) Put <inherits name='com.google.gwt.user.theme.standard.Standard'/>
(or chrome/dark) in your module gwt.xml file which will activate the
theme. Now however you are stuck with what they give you - well, no,
you are not......

Notice that the .gwt-DisclosurePanel .content style has got borders
and padding etc. Now I was happy with most of the standard theme for
what I was doing, but I did not want the contents of the disclosure
panel to be so indented - I wanted it flush with the outer border of
the panel. So I stuck this in my own module CSS file:

.my-DisclosurePanel {
}
.my-DisclosurePanel-open {

width: 100%;
height: 100%
}
.my-DisclosurePanel-closed {

}
.my-DisclosurePanel .header,
.my-DisclosurePanel .header a,
.my-DisclosurePanel .header td {
text-decoration: none; /* Remove underline from header */
color: black;
cursor: pointer;
cursor: hand;
}
.my-DisclosurePanel .content {
width: 100%;
height: 100%
/*border-left: 3px solid #e8eef7;
padding: 4px 0px 4px 8px;
margin-left: 6px;*/

}

Then in my Java class code:

private DisclosurePanel myDiscPanel = new DisclosurePanel();
...
myDiscPanel .setStylePrimaryName("my-DisclosurePanel");

et viola the annoying indents have gone for this particular
DisclosurePanel, but I still have the main GWT theme running for all
other widgets (including any other DisclosurePanels I don't choose to
doctor like this) which is useful otherwise everything really does
look awful to start with. Notice how just changing the primary style
name achieves this (which is why you should design your own widgets
like this: it enables wholesale alterations to L&F with minimal effort
and it is truly amazing what you can do CSS styling when you get the
hang of it. It makes Swing look stupid in some respects).

It may drive you mad for a bit but I assure you there is method in
this madness. A good tip when you get a bit lost is to fire up the
showcase demo, choose an example widget that vaguely resembles what
you need to do and look up it's source code and CSS.

regards
gregor


On Dec 7, 11:05 pm, "David Hoffer" <dhoff...@gmail.com> wrote:
> Thanks for stating the obvious, I hadn't seen that web site yet.
> Okay, I have a couple of CSS newbie questions.
>
> 1. What are calls like
> disabledButton.ensureDebugId("cwBasicButton-disabled") for?  This
> isn't a Java like thing.
> 2. Where do I paste the CSS Style code?
>
> Thanks!
> -Dave
>

David Hoffer

unread,
Dec 8, 2008, 8:34:08 AM12/8/08
to Google-We...@googlegroups.com
Hi Gregor,


Thanks for the detailed response I will give this a try today.

As I read this I thought of a couple questions.

1. Does my CSS file have to have a particular name? You say it goes
next to the HTML file. Do I just name it the same but with css
extension and it will be found or do I have to reference it somehow in
my HTML/XML?

2. You mentioned to look at the showcase examples to get CSS to use.
I looked at all these yesterday and found that most do not show the
CSS used (I think most of the widgets did but most containers did
not). I then looked at the source code for showcase given in the GWT
examples and it seems they are using annotations to bring in styling
information. What's up with this? It seems there is more than one
way to apply CSS in GWT. This makes it harder to learn how one is to
do this.

As an example of what currently looks really bad...DialogBox and
VerticalSplitPanel. The former has no border so it doesn't even look
remotely like a DialogBox and VerticalSplitPanel only has a splitter
bar...no border. So unless you really know there is a split panel you
have no idea what you are looking at. For these examples the showcase
shows no CSS so apparently it is using annotations to bring in
styling. BTW, for these cases I am using the standard theme.

Thanks much, I will look at your example.
-Dave

Miles T.

unread,
Dec 8, 2008, 9:38:43 AM12/8/08
to Google Web Toolkit
Hi David and tomato,

We also didn't (and still don't) want to write HTML or CSS for our
application (it aims to be an internal application, not a public
website). Consider using Ext GWT, SmartGWT or GWT-Ext, I guess this is
what you're looking for. These libraries provide a set of widgets and
look and feels and let you define your own. They also allow you to
devlop in a Swing-style by using standard layouts (BorderLayout,
CenterLayout,...).

We choose Ext GWT because it is a full GWT library (others are
wrapping a JS library), it provides a simple MVC layer and has more
documentation.

Regards
> ...
>
> plus de détails »

jhulford

unread,
Dec 8, 2008, 9:54:19 AM12/8/08
to Google Web Toolkit
On Dec 7, 6:05 pm, "David Hoffer" <dhoff...@gmail.com> wrote:
> Thanks for stating the obvious, I hadn't seen that web site yet.
> Okay, I have a couple of CSS newbie questions.
>
> 1. What are calls like
> disabledButton.ensureDebugId("cwBasicButton-disabled") for? This
> isn't a Java like thing.
> 2. Where do I paste the CSS Style code?

1) ensureDebugId is for using Selenium to do automated tests of your
GUI code. http://seleniumhq.org/

2) You _really_ need to learn the basics of web design. I'm not
trying to be rude, but for all but the simplest of projects you're
going to have to get your hands real dirty with javascript/html/css -
especially when trying to work around browser positioning
differences. GWT isn't going to abstract most of that away from you.
To answer your question, you can include the CSS inside your hostpage
(directly in the head or via a link tag) OR the more GWT way of doing
it is to include a stylesheet reference to the CSS file inside your
module XML file.

gregor

unread,
Dec 8, 2008, 10:42:02 AM12/8/08
to Google Web Toolkit
in line:



>
> 1. Does my CSS file have to have a particular name?  You say it goes
> next to the HTML file.  Do I just name it the same but with css
> extension and it will be found or do I have to reference it somehow in
> my HTML/XML?
>

No, it's specified in the module HTML file.

> 2. You mentioned to look at the showcase examples to get CSS to use.
> I looked at all these yesterday and found that most do not show the
> CSS used (I think most of the widgets did but most containers did
> not).  I then looked at the source code for showcase given in the GWT
> examples and it seems they are using annotations to bring in styling
> information.  What's up with this?  It seems there is more than one
> way to apply CSS in GWT.  This makes it harder to learn how one is to
> do this.
>

Yeah, this is new style injection stuff. Afraid I'm not familiar with
it yet. I think it's really useful once you know what you are doing.

> As an example of what currently looks really bad...DialogBox and
> VerticalSplitPanel.  The former has no border so it doesn't even look
> remotely like a DialogBox and VerticalSplitPanel only has a splitter
> bar...no border.  So unless you really know there is a split panel you
> have no idea what you are looking at.  For these examples the showcase
> shows no CSS so apparently it is using annotations to bring in
> styling.  BTW, for these cases I am using the standard theme.
>

I thought DialogBox does have a border as standard? Anyway, the issue
is this. Most likely you will want to put the VSP into a container of
some sort. That container will might also contain other widgets in
possibly complicated arrangements. Now, do you style the borders for
each one individually so you end with a smooth regular border around
the whole lot (which might involve setting the right border for this
one, the top border for that one etc). Or do you only style the
internal partitions borders of the individual widgets and style the
border of the container boxes once and once only to get outer border
for all your main layout boxes in one go?

If you are just creating a few example widgets out context (i.e. not
within an overall "designed" page layout) then I can see what you are
saying. However if you take a step further and start with an outline
page layout that has a set of discreet containers to house your main
application widgets, it can make a lot of sense to work "outside in"
so to speak and get the overall layout with borders and spacings etc
you want first, then just slot the widgets into it. That way most
widgets nestle up to the layout's borders so you don't want them to
have their own, just some extra internal styling to make them look
right here and there.

And of course the killer is that if the borders/margins etc are set on
the layout outline containers, they will all probably have the same
CSS style - or just a few of them - so a few ridiculously simple CSS
edits on this style can dramatically change the way your layout looks
(and I mean dramatically). When you do this for the first time you
will suddenly get the point - the "Aha moment".

If you wanted a more business oriented look, you can use low key
narrow borders (like 1 or 2 pixels) in a soft blueish shade around the
layout containers with a little padding/margin between them with a
matching low key gradient strip image for headings etc rather than,
say, Google's house style of thick blue borders and inverse headings

But it's not mandatory. People work in different ways and have
different design requirements. if you want a border round a VSP, just
put it in CSS like I described above.

> Thanks much, I will look at your example.
> -Dave
>
> ...
>
> read more »

Arthur Kalmenson

unread,
Dec 9, 2008, 9:31:22 AM12/9/08
to Google-We...@googlegroups.com
Hello David and tomato,

I highly recommend you stay as far away from Ext-GWT, SmartGWT and
GWT-ext as you can. Gregor said it best, while they might look shiny,
they are as slow as molasses and a huge PITA to work with. Once you
start using them, you fall into their overly complex and inconsistent
event models, you completely forgo most of GWT since these libraries
can't work with GWT widgets, and give up the simplicity and high
quality you come to expect from GWT. I say this from experience.

--
Arthur Kalmenson

David Hoffer

unread,
Dec 9, 2008, 9:40:08 AM12/9/08
to Google-We...@googlegroups.com
Hi Arther,

Your comments are well taken. Since I have heard this before we have
used pure GWT.

However, at this point however, I do think GWT missed it a bit here
because most Java programmers do not know CSS, at least not well, and
you cannot use GWT without knowing CSS. This fact, I think drives
some to these other frameworks.

I think an ideal situation would be for GWT (or someone) to create a
mechanism to get a standard L&F with GWT without knowing CSS; sort of
like what you can do with Swing. Although just like Swing you should
be able to customized this L&F via some mechanism and in the case of
GWT CSS is fine. It seems GWT did start to go in this direction with
the GWT themes but they aren't extensive enough.

-Dave

Jeremy Cohen

unread,
Dec 9, 2008, 12:10:10 PM12/9/08
to Google-We...@googlegroups.com
Arthur,
I see that you jump into all threads involving third party libraries and tell users how bad they are. I'm not even sure you've used them enough to make an informed decision. There is after all a learning curve involved in learning any third party library and their API's.

You do realize that these third party libraries provide rich any highly dynamic widgets that are required by many real world applications. With increased functionality comes increased size. Are you saying that your application only uses the widgets available in GWT core and the incubator project? If so, I doubt it will come anywhere close to the functionality delivered to users by any of these third party libraries. Remember, what ultimately counts functionality delivered to the end user and not whether the developer of the application used only widgets in GWT, or third party libraries. Or whether they use Spring / ORM library, or core JDK / JDBC API's. Does your application provide a rich grid widget? Or are you building inhouse custom components? (if so, please do share). From an end users perspective what makes it any better than the ones already available.

I'm sure you're a real smart guy, but it would be great if you put your money where your mouth is and allow users to see the application you have been working on, the complexity of the application, along with detail on number of developers, and duration of project. We can then draw a comparison between the two approaches.

Cheers,
-Jeremy

gregor

unread,
Dec 9, 2008, 3:07:23 PM12/9/08
to Google Web Toolkit
Hi Jeremy,

I can't speak for Arthur, but I also interject occasionally on the Ext
issue (usually with the rider that I tried MyGWT for only a short
while and walked away from it after I realized what was going on). The
reason is simply this: many people just post links on this group to
Ext family demos, and for the unwary one look at those beautifully
designed desktop emulation widgets will turn their heads before they
have an inclination of what the consequences are, or the alternatives
approaches.

So the issue is one of balance. No one argues Ext widgets don't look
very pretty or that you don't get this look out of the box lickerty
spit compared with straight GWT - the point is there is a price to pay
(and I don't mean license $'s), and people need to know about that.
For some the price maybe worth worth paying, for others maybe not, but
everyone should understand the nature of the trade off so they can
make informed decisions for their own situations.

I certainly don't want to criticize you for choosing to use Ext, I
only have one bugbear with you post: the use of the word "rich". What
do you mean by "rich and highly dynamic widgets"? Are you suggesting,
for example, that there is something you can do with the Ext family's
data grid that you cannot do with PagingScrollTable?

regards
gregor



On Dec 9, 5:10 pm, "Jeremy Cohen" <jeremy.h.co...@gmail.com> wrote:
> Arthur,I see that you jump into all threads involving third party libraries
> and tell users how bad they are. I'm not even sure you've used them enough
> to make an informed decision. There is after all a learning curve involved
> in learning any third party library and their API's.
>
> You do realize that these third party libraries provide rich any highly
> dynamic widgets that are required by many real world applications. With
> increased functionality comes increased size. Are you saying that your
> application only uses the widgets available in GWT core and the incubator
> project? If so, I doubt it will come anywhere close to the functionality
> delivered to users by any of these third party libraries. Remember, what
> ultimately counts functionality delivered to the end user and not whether
> the developer of the application used only widgets in GWT, or third party
> libraries. Or whether they use Spring / ORM library, or core JDK / JDBC
> API's. Does your application provide a rich grid widget? Or are you building
> inhouse custom components? (if so, please do share). From an end users
> perspective what makes it any better than the ones already available.
>
> I'm sure you're a real smart guy, but it would be great if you put your
> money where your mouth is and allow users to see the application you have
> been working on, the complexity of the application, along with detail on
> number of developers, and duration of project. We can then draw a comparison
> between the two approaches.
>
> Cheers,
> -Jeremy
>
> On Tue, Dec 9, 2008 at 9:31 AM, Arthur Kalmenson <arthur.k...@gmail.com>wrote:
>
>
>
> > Hello David and tomato,
>
> > I highly recommend you stay as far away from Ext-GWT, SmartGWT and
> > GWT-ext as you can. Gregor said it best, while they might look shiny,
> > they are as slow as molasses and a huge PITA to work with. Once you
> > start using them, you fall into their overly complex and inconsistent
> > event models, you completely forgo most of GWT since these libraries
> > can't work with GWT widgets, and give up the simplicity and high
> > quality you come to expect from GWT. I say this from experience.
>
> > --
> > Arthur Kalmenson
>
> ...
>
> read more »

Jeremy Cohen

unread,
Dec 9, 2008, 3:47:03 PM12/9/08
to Google-We...@googlegroups.com
Hi gregor,
I agree with your post and we have also stopped use of the extJS family of products. Fortunately it was still a proof-of-concept phase. We had to make a different technology choice due to timelines and various technical and strategic reasons. However I really like GWT and the fact that programming is in Java. As you mention users should understand the consequences and alternatives. Dismissing third party libraries categorically and making it sound like stying is a breeze and the current GWT widgets are all that a user might need is also not quite right. 

For some users having polished and feature rich widgets without extra styling effort might be more important than the extra initial download time since size is not of much consequence in an intranet application. It would be an interesting stat to see what percentage of users are building GWT applications for intranet vs. internet applications. We pretty much hear about most GWT internet based sites from ongwt or gwtsite but based on the GWT userbase I would imagine that a majority of GWT applications are intranet applications.

I'm not going to try to sell any third party library, but some do provide rich capabilities like grouping, custom formatting like expandable rows that are not simple to accomplish out-of-the-box with GWT. (at least when I last looked) .

Cheers,
-Jeremy

Miles T.

unread,
Dec 10, 2008, 4:05:24 AM12/10/08
to Google Web Toolkit
On 9 déc, 21:07, gregor <greg.power...@googlemail.com> wrote:
> usually with the rider that I tried MyGWT for only a short
> while and walked away from it after I realized what was going on

What was going on ? Are you talking about the license change ?

> the point is there is a price to pay
> (and I don't mean license $'s),

Sorry, I don't know it. Could you explain ?

> What
> do you mean by "rich and highly dynamic widgets"?  Are you suggesting,
> for example, that there is something you can do with the Ext family's
> data grid that you cannot do with PagingScrollTable?

I don't know every incubator widgets (actually, I only know the
slider), but I am almost sure there is a lot of features. The main
point which makes me using a third-party library is I don't need (and
we didn't have the time anyway when we had to choose) to write some
custom styles in my project. The new GWT themes are unfortunately
still not enough for me, because you still have to manage HTML/CSS
positioning/sizing issues and the themes are very light.
> ...
>
> plus de détails »

Arthur Kalmenson

unread,
Dec 12, 2008, 9:13:36 AM12/12/08
to Google-We...@googlegroups.com
Hi David,

I do agree with you that for the initial prototyping and maybe initial
production releases it would be nice to have some polished CSS.
However, I think that in general it's a much better use of resources
to get a graphics designer to come up with the L & F and layout of
your application. You might also find the following GWT blog posting
on L & F an interesting read:
http://googlewebtoolkit.blogspot.com/2008/12/gwt-no-need-to-shortchange-your-style.html

--
Arthur Kalmenson

Arthur Kalmenson

unread,
Dec 12, 2008, 10:06:31 AM12/12/08
to Google-We...@googlegroups.com
Hi Jeremy,

> I see that you jump into all threads involving third party libraries and
> tell users how bad they are. I'm not even sure you've used them enough to
> make an informed decision. There is after all a learning curve involved in
> learning any third party library and their API's.

We (myself an intern) used GWT-ext for a new project some time ago. We
had to abandon it for vanilla GWT because of speed issues,
incompatibility with regular GWT, difficulty to debug and develop with
because hosted mode crawled, and overall poor quality and bugs present
in the library. I'm aware there is a learning curve with any new
library, but we found that you either go all the way with GWT-ext or
not at all.

> You do realize that these third party libraries provide rich any highly
> dynamic widgets that are required by many real world applications. With
> increased functionality comes increased size. Are you saying that your
> application only uses the widgets available in GWT core and the incubator
> project?

Well we create new widgets using the vanilla and incubator ones.

> If so, I doubt it will come anywhere close to the functionality
> delivered to users by any of these third party libraries. Remember, what
> ultimately counts functionality delivered to the end user and not whether
> the developer of the application used only widgets in GWT, or third party
> libraries. Or whether they use Spring / ORM library, or core JDK / JDBC
> API's.

IMHO, what ultimately counts is user experience. If the application is
slow and buggy but has lots of animations and effects, the user is not
going to have a good experience. However, if the application is super
speedy and has a few nice animations where it makes sense, the user
will have a much better experience.

I think what also counts is the maintainability and scalability of
one's application. If the application is going to become quickly
unmaintainable because of quirks in the third party GWT libraries or
because core JDK and JDBC were used to (poorly) duplicate
functionality found in Spring/EJB and ORMs, the project will probably
fail or require a complete rewrite. I've been in that situation.

This is the same question to ask whether a project should be done the
right way by unit testing, integration test, acceptance testing, using
a SCM, using a bug tracker, using a Continuous Integration solution,
etc or whether it should be hacked it together and "we'll figure it
out later" (also been there :P).

> Does your application provide a rich grid widget? Or are you building
> inhouse custom components? (if so, please do share). From an end users
> perspective what makes it any better than the ones already available.

The grid that we provided in the past (custom made) and will provide
in the future (gwt-incubator PagingScrollTable) will only be used to
show search results. We don't need a complex grid widget for our
specific applications. We have built in house components, but a lot of
projects have widgets that are very specific to those project. We do
have an OSS project that's undergoing changes atm. I'll be making an
announcement when it's ready for use. I'm throwing out a lot of the
components we built because the GWT team is providing them either in
the trunk or in the incubator. As for the end user, it's the same
reasons I mentioned above. Our widgets are built with vanilla GWT so
they're quick and also well tested.

> I'm sure you're a real smart guy...

Not sure about that :P

> ... but it would be great if you put your
> money where your mouth is and allow users to see the application you have
> been working on, the complexity of the application, along with detail on
> number of developers, and duration of project. We can then draw a comparison
> between the two approaches.

You can't really see the applications we work on because they're
internal only (there is a file transfer system that is external, but
it's rather small). A lot of the projects are still in development
since we're working on about 6 projects (going between them after one
Sprint). Our medium to large sized projects are usually 300-600
person-hours of work. There is only 1.5 full time equivalent people
working on them at the moment (myself and a part time person). I can't
be any more specific then that.

I just want to leave off with one point. I'm not against third party
libraries in general, in fact, I'd love to have a library with shiny
widgets. I've just had first hand experience with one of these
libraries and have spoken to many people who use other ones (i.e. Ext
GWT). In both cases, these third party libraries were either abandoned
or in the process of being abandoned. If someone comes out with a
third party library that's on par with the vanilla GWT widgets in
terms of stability and speed, I'll jump on them.

--
Arthur Kalmenson

David Hoffer

unread,
Dec 12, 2008, 10:11:31 AM12/12/08
to Google-We...@googlegroups.com
You seem to get my point. Its a classic catch-22 situation. I can't
get access to the graphics designer until I can prove what GWT can do
for us. Others, using a different technology i.e. Flex?, are going to
be able to create a decent looking UI themselves without the need of a
graphics specialist.

GWT seems quite poor at doing rapid prototyping unless you happen to
have both Java and graphics designers in your development team.

I have spent more time getting the prototype to look decent than
developing the functionality :(

-Dave

Miles T.

unread,
Dec 15, 2008, 9:11:28 AM12/15/08
to Google Web Toolkit
Hi,

On 12 déc, 15:13, "Arthur Kalmenson" <arthur.k...@gmail.com> wrote:
> However, I think that in general it's a much better use of resources
> to get a graphics designer to come up with the L & F and layout of
> your application.

Actually, Arthur, I would generally fully agree with you about a web
application. But what some people expect from GWT is to keep us as far
as possible from CSS and HTML, so that we can mostly develop the
application using only an OOP language. Maybe it is utopic, because
HTML and CSS have never been designed in the aim of developing rich
applications, but GWT has made a first great pace and we expect it to
do more.

You are right, any third party is DEFINITELY NOT the same quality as
GWT (neither is gwt-incubator). It is like comparing the JDK to
commons-lang or something like that. But they (or actually the one I
am using) are not SO buggy (and bugs are quickly fixed), and not "as
slow as molasses" ;-). And it helps you a lot with design. Actually, I
don't care about "shininess", what I want is to not write a line of
CSS.

Cheers

Miles

> --
> Arthur Kalmenson
>
> On Tue, Dec 9, 2008 at 9:40 AM, David Hoffer <dhoff...@gmail.com> wrote:
> > Hi Arther,
>
> > Your comments are well taken.  Since I have heard this before we have
> > used pure GWT.
>
> > However, at this point however, I do think GWT missed it a bit here
> > because most Java programmers do not know CSS, at least not well, and
> > you cannot use GWT without knowing CSS.  This fact, I think drives
> > some to these other frameworks.
>
> > I think an ideal situation would be for GWT (or someone) to create a
> > mechanism to get a standard L&F with GWT without knowing CSS; sort of
> > like what you can do with Swing.  Although just like Swing you should
> > be able to customized this L&F via some mechanism and in the case of
> > GWT CSS is fine.  It seems GWT did start to go in this direction with
> > the GWT themes but they aren't extensive enough.
>
> > -Dave
>
> > On Tue, Dec 9, 2008 at 7:31 AM, Arthur Kalmenson <arthur.k...@gmail.com> wrote:
>
> >> Hello David and tomato,
>
> >> I highly recommend you stay as far away from Ext-GWT, SmartGWT and
> >> GWT-ext as you can. Gregor said it best, while they might look shiny,
> >> they are as slow as molasses and a huge PITA to work with. Once you
> >> start using them, you fall into their overly complex and inconsistent
> >> event models, you completely forgo most of GWT since these libraries
> >> can't work with GWT widgets, and give up the simplicity and high
> >> quality you come to expect from GWT. I say this from experience.
>
> >> --
> >> Arthur Kalmenson
>
> ...
>
> plus de détails »

David Hoffer

unread,
Dec 15, 2008, 9:13:50 AM12/15/08
to Google-We...@googlegroups.com
You got it. +1

-Dave

Reply all
Reply to author
Forward
0 new messages