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 On Tue, Dec 9, 2008 at 12:10 PM, Jeremy Cohen <[email protected]> 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 <[email protected]> > 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 >> >> >> >> On Mon, Dec 8, 2008 at 9:38 AM, Miles T. <[email protected]> wrote: >> > >> > 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 >> > >> > On 8 déc, 14:34, "David Hoffer" <[email protected]> wrote: >> >> 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 >> >> >> >> On Sun, Dec 7, 2008 at 7:57 PM, gregor <[email protected]> >> >> wrote: >> >> >> >> > 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" <[email protected]> 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 >> >> >> >> >> On Sun, Dec 7, 2008 at 10:45 AM, tomato <[email protected]> >> >> >> wrote: >> >> >> >> >> > 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" <[email protected]> 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 <[email protected]> >> >> >> >> >> >> > 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 >> >> >> >> > <[email protected]> >> >> >> >> > wrote: >> >> >> >> >> >> > > 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 >> >> >> >> ... >> >> >> >> plus de détails » >> > > >> > >> >> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
