Re: StackPanel
Hi Issam, Thank you for your answer... But what do you mean by Make the one item a VerticalPanel??Which one??Do you mean that I should use VertcialPanel instead of StackPanel? On 19 abr, 14:33, Issam boualem.is...@gmail.com wrote: Hi, Make the one item a VerticalPanel (or HorizontalPanel) and then put what ever you want in Vertical/Horizontal Panel.. On Apr 19, 1:44 pm, Ani anapont...@gmail.com wrote: Hello, I hope that someone can help me with this question. Is it possible to show more than 1 item on a stackpanel? I mean, i know that by definition it just show 1 at time, but i'd like to know if it's possible to do something like that Thank you very much for your help. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: StackPanel
Hi Gaurav, Thank you for answering! I need a widget that works like a StackPanel, but in a way that I can have two items open simultaneously. Now, I have a StackPanel with 3 items, but I just can see one of them at time. Is it more clear now??Thank you for any help! On 20 abr, 06:07, Gaurav Vaish gaurav.va...@gmail.com wrote: Hi Ani, If you can elaborate on what you're trying to achieve, the forum may be able to suggess you with better options. -- Happy Hacking, Gaurav Vaishhttp://www.incoleg.com On Apr 19, 5:33 pm, Issam boualem.is...@gmail.com wrote: Hi, Make the one item a VerticalPanel (or HorizontalPanel) and then put what ever you want in Vertical/Horizontal Panel.. On Apr 19, 1:44 pm, Ani anapont...@gmail.com wrote: Hello, I hope that someone can help me with this question. Is it possible to show more than 1 item on a stackpanel? I mean, i know that by definition it just show 1 at time, but i'd like to know if it's possible to do something like that Thank you very much for your help. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Problem with GXT not running on Linux machines
Hi, I am facing an issue with GXT no getting executing especially with BeanModelFactory, Module itself is failing to load, Can someone please help me in this regard. Thanks Sri -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Problem with GXT not running on Linux machines
Hi Sri, Can you please be little clear about your problem? Application is not getting built or its not loading the application? please specify the module descriptors you are using? On Wed, Apr 20, 2011 at 12:42 PM, sridevi macherla sridevimache...@gmail.com wrote: Hi, I am facing an issue with GXT no getting executing especially with BeanModelFactory, Module itself is failing to load, Can someone please help me in this regard. Thanks Sri -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- Kind Regards, *Phani Kumar K*** *Senior Software Engineer*** * -- * *Encora Technologies Pvt. Ltd. | M. G. Road | Bangalore | Mob : +91-9916435979 | Off (D) : +91-80-6695-3683 ** **| E-Mail : phani.kakarapar...@encorainc.com http://www.encorainc.com/**phani.kakarapar...@encorainc.com * -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Problem with GXT not running on Linux machines
Hi Phani, The problem I am facing is that I am trying for lookup for Java objects class to get the BeanModel class and now I am getting different javascript errors when we are executing on Linux machines. Nt sure why i am getting even i tried to compile in Pretty version as well but no use. BeanModelLookup.get().getFactory(SomeJava.getClass()); Thanks Sri On Wed, Apr 20, 2011 at 12:45 PM, phani kumar phanikuma...@gmail.comwrote: Hi Sri, Can you please be little clear about your problem? Application is not getting built or its not loading the application? please specify the module descriptors you are using? On Wed, Apr 20, 2011 at 12:42 PM, sridevi macherla sridevimache...@gmail.com wrote: Hi, I am facing an issue with GXT no getting executing especially with BeanModelFactory, Module itself is failing to load, Can someone please help me in this regard. Thanks Sri -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- Kind Regards, *Phani Kumar K*** *Senior Software Engineer*** * -- * *Encora Technologies Pvt. Ltd. | M. G. Road | Bangalore | Mob : +91-9916435979 | Off (D) : +91-80-6695-3683 ** **| E-Mail : phani.kakarapar...@encorainc.com http://www.encorainc.com/**phani.kakarapar...@encorainc.com * -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Outdate webtoolkit home page in Spanish
Hi Have you seen that the webtoolkit home page in Spanish is totally outdated http://code.google.com/intl/es-ES/webtoolkit/ The page talks about the new Google Web Toolkit 1.7 Can we help update that page? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Ajax loader locked screen
Hi, is there a way/example to get a locked screen with a loader in the middle of the screen with GWT (2.2) while is fetching data? Thanks, Julio -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Out of date JSON warnings on security_for_gwt_applications by Dan Morrill
This page is linked in the security documentation in the most recent (v 2.2) of the GWT documentation: http://code.google.com/webtoolkit/articles/security_for_gwt_applications.html There are two external links in the JSON section: http://directwebremoting.org/blog/joe/2007/03/05/json_is_not_as_safe_as_people_think_it_is.html http://robubu.com/?p=24 Both of these links discuss an issue with JSON data leaks that were fixed at the end of 2007[1]. I suggest removing these links, or at least noting that the security issues discussed only affect ancient versions of Firefox. http://ejohn.org/blog/re-securing-json/ -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
remote debugging with eclipse for gwt application deployed on tomcat
hi can any one tell me how to remote debug gwt application deployed on tomcat server in eclipse as we do in case of servlet application . -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Invoke Webcam through Gwt
Hello All, I am developing an application which needs to invoke in-built webcam to capture image, video and audio. I came across gwt-webcam api but the project seems to be inactive. Can anyone guide me on how to achieve this ? Thanks in advance Wishes, Sneha -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Problem with Window.open and IE8 - lose focus
Hi, I'm using com.google.gwt.user.client.Window.open to open a new window, e.g. Window.open(test.jsp, test,status=0,toolbar=0,menubar=1,location=0,resizable=0,width=500,height=500); However, when I run the code in IE8, the new window that opens is getting hidden in the background, e.g. behind the parent window. The strange thing is that this works in other web browsers like Firefox and Chrome. Have you seen this issue? Do you know if there is any way to make the GWT Window.open code to automatically set focus on the new window in IE8? Thanks. Billy -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
GWT RPC - WebServiceClient
Hello We are currently looking to optimize some of our GWT projects but we ran into a few issues. Most if not all of our data is coming from an OSGI backend. Communication between the GWT client - GWT RPC - OSGI backend is far from optimal as we have to write a lot of boiler plate code. To optimize this we were thinking of including one ( or multiple) webservices in our OSGI backend using Apache CXF. On the GWT RPC side we implemented a webservice client using Apache CXF 2 as well. However the real challenge we are facing is how to use the CXF generated objects for communication between GWT client and GWT RPC. I've came across several posts claiming this was perfectly possible but so far we haven't been successful. The Apache CXF generated classes have references to JAXBElement, when compiling this results in: No source code is available for type javax.xml.bind.JAXBElementT; Using the super-source tag we provided the source for JAXBElement, however this results in more of the same issues for: javax.xml.namespace.Qname, java.io.ObjectInputStream, java.lang.ClassNotFoundException, ... Is there anyway to accomplish this or another path we can follow? Thank you in advance Stijn -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Tree+ScrollPanel
Hi, When you click TreeItem in ScrollPanel , scroll to right edge of TreeItem. This behavior is inconvenient when there is a long text. Can it not scroll? Thanks. - public void onModuleLoad() { // Create a tree with a few items in it. TreeItem root = new TreeItem(root); root.addItem(item0); // Add a long text Item to the tree TreeItem item = new TreeItem(foobarhogehoge); item.addItem(new TreeItem(item11)); item.addItem(item12); item.addItem(item13); item.addItem(item14); root.addItem(item); Tree t = new Tree(); ScrollPanel scrollPanel = new ScrollPanel(); scrollPanel.setHeight(100px); scrollPanel.setWidth(100px); t.addItem(root); scrollPanel.add(t); RootPanel.get().add(scrollPanel); } -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
GWT and PS3
Is anyone achieve loading GWT compiled app in PlayStation 3 (Netfront) browser. I have tried to compile IE6 only permutation, but PS3 did not pick it up. Any suggestions? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Invoke Webcam through Gwt
If you are willing to wait some couple of days. gwt4air 2.1 will have web cam API through Flash. cheers, Alain 2011/4/20 shrekjo snehajonn...@gmail.com Hello All, I am developing an application which needs to invoke in-built webcam to capture image, video and audio. I came across gwt-webcam api but the project seems to be inactive. Can anyone guide me on how to achieve this ? Thanks in advance Wishes, Sneha -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- GWT API for the Flash Platform http://code.google.com/p/gwt4air/ http://www.gwt4air.appspot.com/ -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Navigation between different html pages
hello, sorry being so annoying :) i have another problem concerning navigation from the html host page to another html page. first i created a new module with a new entry point. then i created a new html page and added the script tag which point to the new module what i want is the following: i want after success of an rpc with the server to open a new window or tab(would be better) which is the html page. i don't realy konw how if certain configurations concernig previous modules should be done. So any suggestions would be great and so helpful for me. thanks. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: GWT MVP how to map a Composite Place to its corresponding Activities
Hi zixzigma, Use a separate ActivityManager and ActivityMapper for each panel. Each ActivityMapper can return a different Activity mapped to the CompositePlace. Have a look at slide 47 here: http://www.slideshare.net/turbomanage/whats-new-in-gwt-22 HTH, /dmc On Tue, Nov 30, 2010 at 12:08 AM, zixzigma zixzi...@gmail.com wrote: Hello Everyone, Roo scaffolding creates ProxyPlace and ProxyListPlace. ProxyPlace is good if we need to deal with one EntityProxy at a time. in a more complex situation, where view might be consisted of multiple panels, many EntitiyProxies might be needed to populate those panels, and to make history/bookmark working those EntityProxies must be added to to the history token. MyCompositePlace extends Place { EntityProxyIdFooEntityProxy firstEntityProxyId; EntityProxyIdBarEntityProxy barEntityProxyId; EntityProxyIdBazEntityProxy bazEntityProxyId; //Tokenizer } and this composite place is used like this: placeController.go(new MyCompositePlace( id1, id2, id3)); and we have to implement the Tokenizer, spliting the history token, and processing etc in ActivityMapper, there is a getActivity method Activity getActivity(Place place) in the case of CompositePlace, how can we decompose the Composite Place into its places, and map them to corresponding activities ? getActivity returns only one activity, but in the case of composite place, we need to return for example 3 activities. in short, how can we map a Composite Place to its corresponding Activities ? please help ! -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- David Chandler Developer Programs Engineer, Google Web Toolkit w: http://code.google.com/ b: http://googlewebtoolkit.blogspot.com/ t: @googledevtools -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Ajax loader locked screen
You could use a modal DialogBox and not offer the user a way to close it. -Ben -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: CellTable Sort in 2.2
Are you using ListDataProvider or AsyncDataProvider? Either way, you will have to add ListHandler or AsyncHandler to your cellTable. Take a look at http://code.google.com/webtoolkit/doc/latest/DevGuideUiCellTable.html. On Apr 19, 12:47 pm, SVR svr...@gmail.com wrote: I am using payerColumn.setSortable(true); where payerColumn is of type: private class PayerNameColumn extends ColumnBasicLocationData, String the document just tells to use the api, but I dont get the up/down arrow to do the sorting? What else needs to be done? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: GWT and PS3
The user agent detection is defined in the UserAgent.gwt.xml module definition file (http://code.google.com/p/google-web-toolkit/source/ browse/trunk/user/src/com/google/gwt/user/UserAgent.gwt.xml). You can actually override that provider in your own module file by making your own property-provider name=user.agent in it. If you figure out what the PS3's user agent is and map it to any of the user agents that are currently utilized in GWT. That won't mean everything will necessarily work if the PS3 browser doesn't actual work like the browser you're mapping it to, but it will get you past the hump of getting the PS3 browser to run your GWT code. On Apr 19, 7:45 pm, Excell anton.fedo...@gmail.com wrote: Is anyone achieve loading GWT compiled app in PlayStation 3 (Netfront) browser. I have tried to compile IE6 only permutation, but PS3 did not pick it up. Any suggestions? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: How do I test task queue ?
Hello, At the end of the task, write the result in a datastore, and the GWT application will periodically fetch the datastore to know if the task is completed. Or you can use the chanel API, the task at the end send a message to the channel to say that the task is finished. http://code.google.com/appengine/docs/java/channel/overview.html And the GWT implementation : http://code.google.com/p/gwt-gae-channel Patrice -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: CellTable Sort in 2.2
Yes I do provide one, but what I notice is that once I click on any of the rows, the arrows show up. But until then there is no clue that sorting has been enabled. On Wed, Apr 20, 2011 at 9:36 AM, Soon Fatt Hoo sf...@sfhoo.com wrote: Are you using ListDataProvider or AsyncDataProvider? Either way, you will have to add ListHandler or AsyncHandler to your cellTable. Take a look at http://code.google.com/webtoolkit/doc/latest/DevGuideUiCellTable.html. On Apr 19, 12:47 pm, SVR svr...@gmail.com wrote: I am using payerColumn.setSortable(true); where payerColumn is of type: private class PayerNameColumn extends ColumnBasicLocationData, String the document just tells to use the api, but I dont get the up/down arrow to do the sorting? What else needs to be done? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: CellTable Paging
Thank you, John! Will you post when this might be available for us to try? Thanks, Susan On Mar 21, 1:53 pm, John LaBanca jlaba...@google.com wrote: I'm working on a version of CellTable that has fixed headers and a scrollable content area. It may not make it into GWT 2.3, but it should be checked into trunk before long. Thanks, John LaBanca jlaba...@google.com On Sat, Mar 19, 2011 at 11:03 AM, marc.e marc.epst...@gmail.com wrote: I do not know but I can say that a resizable grid contol with fixed header and scrollbars seems strangely missing from gwt unless you go to 3rd party products or the incubator lab area. I will watch the answers to your question, thanks for asking. On Mar 18, 7:09 am, Jerome Thoma thoma...@googlemail.com wrote: Hi everyone, I am just wondering how you are supposed to use a CellTable in a resizable container from a user experience point of view. What would be desirable (in my opinion) would be either - one large scrollable list of entries that has a fixed header (i.e. not disappearing when scrolling) - a table with paging without scrollbars. There should be exactly as many entries visible as fit into the available space. When resizing the browser window the number of visible rows should be recalculated. What I ended up with so far is a mix of both that is not very satisfying: A table with either scrollbars (small window) or empty space (large window) AND paging WITHOUT fixed headers. ;) Does anyone have an idea or experience in how to use this widget in a sensible way? For me it always feels a bit like wearing your older brother's clothes, they look kind of ok but never really fit you... Have a nice weekend Jerome -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Problems qith ALIGN.CENTER DockPanel
The version is GWT 2.2 On Apr 15, 4:23 pm, Stephanie Brubaker sbruba...@google.com wrote: Hi Jose, What version of GWT are you using? A fix for alignment attributes went into GWT 2.1.1, so if you are using a prior version they will not work properly. Thanks, Stephanie On Thu, Apr 14, 2011 at 8:21 AM, Jose Luis Hernandez jose.hernande...@gmail.com wrote: Hello! I have a problem with DockPanel. I would like to center DockPanel in the screen. I have the next class to perform login/password screen. But when I add the dockPanel to RootPanel, it doen not align CENTER. Could someone help me??? Thanks in advance! Regards! public class ZB_app implements EntryPoint { /** * The message displayed to the user when the server cannot be reached or * returns an error. */ /*private static final String SERVER_ERROR = An error occurred while + attempting to contact the server. Please check your network + connection and try again.; */ /** * Create a remote service proxy to talk to the server-side Greeting service. */ private final GreetingServiceAsync greetingService = GWT .create(GreetingService.class); /** * This is the entry point method. */ public void onModuleLoad() { RootPanel rootPanel = RootPanel.get(); rootPanel.setStyleName(dialogVPanel); DockPanel dockPanel = new DockPanel(); final VerticalPanel vPanel = new VerticalPanel(); final HorizontalPanel hPanel1 = new HorizontalPanel(); final HorizontalPanel hPanel2 = new HorizontalPanel(); hPanel1.setBorderWidth(15); hPanel2.setBorderWidth(15); hPanel1.setSpacing(10); hPanel2.setSpacing(10); vPanel.setBorderWidth(15); Label titleLabel = new Label(Write the login and password:); titleLabel.setStyleName(gwt-Label); vPanel.add(titleLabel); final Label loginLabel = new Label(Login:); loginLabel.setStyleName(gwt-Label); loginLabel.setSize(65px, 19px); hPanel1.add(loginLabel); final TextBox loginField = new TextBox(); loginField.setText(); loginField.setSize(145px, 19px); hPanel1.add(loginField); vPanel.add(hPanel1); final Label passLabel = new Label(Password:); passLabel.setSize(65px, 19px); hPanel2.add(passLabel); final PasswordTextBox passField = new PasswordTextBox(); passField.setSize(145px, 19px); hPanel2.add(passField); vPanel.add(hPanel2); final Button loginButton = new Button(Login); loginButton.setStyleName(sendButton); loginButton.setSize(65px, 35px); vPanel.add(loginButton); final Label errorLabel = new Label(); errorLabel.setStyleName(serverResponseLabelError); errorLabel.setSize(351px, 19px); errorLabel.setVisible(false); dockPanel.add(vPanel, DockPanel.CENTER); dockPanel.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE); dockPanel.setHorizontalAlignment(HasAlignment.ALIGN_CENTER); RootPanel.get(mainContainer).add(dockPanel); //RootPanel.get(mainContainer).add(errorLabel, 450, 350); loginField.selectAll(); passField.selectAll(); // Create a handler for the sendButton and nameField class MyHandler implements ClickHandler, KeyUpHandler { /** * Fired when the user clicks on the sendButton. */ public void onClick(ClickEvent event) { try { sendNameToServer(); } catch (Exception e) { e.printStackTrace(); } } /** * Fired when the user types in the nameField. */ public void onKeyUp(KeyUpEvent event) { if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) { try { sendNameToServer(); } catch (Exception e) {
UmbrellaException
When an unexpected error occurs on the client side, such as a NullPointerException, the result is that an UmbrellaException is thrown and that generally ends up being interpreted as a javascript error by the browser. Those javascript errors are usually less than helpful in determining what the actual problem was. Does anyone have any suggestions on how to handle the case of unexpected errors? Can you put a try catch block at the top level of you app as kind of a catch all? If so, what should be done with these exceptions? Should they be sent back to the server to be logged somehow? If not, how can you try to provide some useful information to help with the debugging process? -TJ -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Gwt plugin 2.2 designer not working mac osx
Hi Mike, I'm currently running Eclipse 3.6 Cocoa x64 on OSX 10.6.7 (Java 1.6.0_24) with no problems. Are you sure you are in a GWT project ? Cmd +I on the project and check the Google category. is it there? On web application and google web toolkit pages you can activate GPE (Google Plugin for Eclipse/GWT Designer) for this project. Possibly the available wizard like Composite only show up in certain perspectives? I'm using Java or Java EE for GWT development. Can you Create new Google porject with New-Google-Web Application Project? Did you install both plugins (also two update sites). First GPE, then GWT Designer? Cheers, Paul On 20 Apr., 01:49, mdwarne mike.wa...@gmail.com wrote: Hi, I have installed the GWT plugin v2.2 under Eclipse 3.6 on Mac OSX 10.6. I can create a GWT project, and compile/test. However there are no designer options. For example the Menu Group with options to create a new Composite etc are not in my new menu tree. I checked that the project setting is using gwt 2.2 for the SDK. Is there something I can check to figure this out? I have uninstalled the plugin and sdk 3 times and re-installed but no difference. Thanks, Mike. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
select TreeItem with right click
Hello everybody, I´ve googling a bit but I don´t find a good/easy way of achieving this. The thing is that I need to show a context menu when the user right-click´s on a treeItem. I have already implemented it, but I also need to have the TreeItem selected. From the point of view of usability/user experience, I think that is not elegant to show a context menu of an item which is not selected. It might be confusing and also the user does not know exactly the TreeItem where he/she has clicked on. Any help on this would be appreciated. Thank you very much. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: UmbrellaException
During the debugging process, you could set the following properties in your config file, which will spit the stack trace to your sever console. I found this very helpful, however the emulated stackmode should be disabled otherwise (for performance and other reasons). Check out Ryan's talk about emulated stack mode. set-property name=gwt.logging.simpleRemoteHandler value=ENABLED / set-property name=compiler.stackMode value=emulated/ set-configuration-property name=compiler.emulatedStack.recordLineNumbers value=true/ set-configuration-property name=compiler.emulatedStack.recordFileNames value=true/ On Wed, Apr 20, 2011 at 11:40 AM, tjmcc18 tjmc...@gmail.com wrote: When an unexpected error occurs on the client side, such as a NullPointerException, the result is that an UmbrellaException is thrown and that generally ends up being interpreted as a javascript error by the browser. Those javascript errors are usually less than helpful in determining what the actual problem was. Does anyone have any suggestions on how to handle the case of unexpected errors? Can you put a try catch block at the top level of you app as kind of a catch all? If so, what should be done with these exceptions? Should they be sent back to the server to be logged somehow? If not, how can you try to provide some useful information to help with the debugging process? -TJ -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Navigation between different html pages
On Success of the RPC, you could open a new Window with Window.open. depending on what the other part of your application is, for eg., a struts action could be reached like so: Window.open(../gwt/sample_load.action); On Wed, Apr 20, 2011 at 8:51 AM, Carlos hbazz...@gmail.com wrote: hello, sorry being so annoying :) i have another problem concerning navigation from the html host page to another html page. first i created a new module with a new entry point. then i created a new html page and added the script tag which point to the new module what i want is the following: i want after success of an rpc with the server to open a new window or tab(would be better) which is the html page. i don't realy konw how if certain configurations concernig previous modules should be done. So any suggestions would be great and so helpful for me. thanks. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
App Layout
Hi, I'm a GWT starter, I need to create an app structure with a main menu on the left side and a main area where i can execute the program selected by the user from the main menu, it's just that, I have no idea on how to accomplish this. ¿Is there any tutorial or any example you guys can provide me in order to get this done? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: App Layout
You should first look at the samples that come with the toolkit: http://code.google.com/webtoolkit/examples/ On Wed, Apr 20, 2011 at 12:55 PM, levan sandoval...@gmail.com wrote: Hi, I'm a GWT starter, I need to create an app structure with a main menu on the left side and a main area where i can execute the program selected by the user from the main menu, it's just that, I have no idea on how to accomplish this. ¿Is there any tutorial or any example you guys can provide me in order to get this done? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Gwt plugin 2.2 designer not working mac osx
It sounds like you want the extra wizards provided by the full version of GWT Designer which you can install from here... http://code.google.com/webtoolkit/tools/download-gwtdesigner.html On Apr 19, 7:49 pm, mdwarne mike.wa...@gmail.com wrote: Hi, I have installed the GWT plugin v2.2 under Eclipse 3.6 on Mac OSX 10.6. I can create a GWT project, and compile/test. However there are no designer options. For example the Menu Group with options to create a new Composite etc are not in my new menu tree. I checked that the project setting is using gwt 2.2 for the SDK. Is there something I can check to figure this out? I have uninstalled the plugin and sdk 3 times and re-installed but no difference. Thanks, Mike. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Please provide update Eclipse plugin for 3.7 aka Indigo
The GWT Plugins do not work with Eclipse 3.7. aka Indigo. Since a lot of people switch over to the latest milestones it would be great if you could update your plugin so that it works with Indigo. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
GWT maps API GoogleBarEnabled
Hi all, I was just having a look at the API, if I call mapWidget.setGoogleBarEnabled(true); I get a Google bar, can I use this to search for specif locations on my map? Or is it a general search bar(can't find much on it)? And could I specify a widget to display the bar's results? Regards, John. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: How does my servlet cleanly throw an exception
No. Because doPost, which is what calls all our RPC code, throws ServletException or IOException, and if you try to throw anything else, Tomcat reports an error to its log about an unexpected exception. Which is one of the things I dont' want. Greg On Apr 12, 12:04 pm, Christien Lomax thecatwhispe...@gmail.com wrote: I created an exception that my app uses (eg: MyAppException) that extends serializable. Then when I need to throw an exception, I catch any other exceptions and throw MyAppException instead, passing in the message from the caught exception(s). Make sense? -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Aw: Re: How does my servlet cleanly throw an exception
Take a look at: http://code.google.com/intl/de-DE/webtoolkit/doc/latest/tutorial/RPC.html#exceptions J. -- You received this message because you are subscribed to the Google Groups Google Web Toolkit group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Problems while upgrading to GWT-2.2.0 from GWT-2.0.4
I have upgraded to GWT-2.2.0 from GWT-2.0.4 and after the update I am getting compilation errors. Here I am attaching a piece of stack trace . Complete stack trace can be provided if anyone needs it.I am using ANT 1.7.1 to build my project. All of the problems are in gwt-user.jar and one in gwt.dnd.jar [ERROR] Errors in 'jar:file:/C:/Programs/tools/gwt-2.2.0/gwt- user.jar!/com/google/gwt/emul/java/math/BitLevel.java' [ERROR] Line 55: val.sign cannot be resolved or is not a field [ERROR] Line 59: The method getFirstNonzeroDigit() is undefined for the type BigInteger [ERROR] Line 60: val.sign cannot be resolved or is not a field [ERROR] Line 61: val.numberLength cannot be resolved or is not a field [ERROR] Line 62: val.digits cannot be resolved or is not a field [ERROR] Line 67: val.digits cannot be resolved or is not a field [ERROR] Line 68: val.numberLength cannot be resolved or is not a field [ERROR] Line 69: val.digits cannot be resolved or is not a field [ERROR] Line 72: val.numberLength cannot be resolved or is not a field [ERROR] Line 83: val.sign cannot be resolved or is not a field [ERROR] Line 86: val.numberLength cannot be resolved or is not a field [ERROR] Line 87: val.digits cannot be resolved or is not a field [ERROR] Line 87: val.numberLength cannot be resolved or is not a field [ERROR] Line 89: val.sign cannot be resolved or is not a field [ERROR] Line 90: The method getFirstNonzeroDigit() is undefined for the type BigInteger === [ERROR] Errors in 'jar:file:/C:/IRIS/Projects/Releases/core-client/ release/gwt/war/WEB-INF/lib/gwt-dnd-3.0.0.jar!/com/allen_sauer/gwt/dnd/ client/util/DragClientBundle.java' [ERROR] Internal compiler error java.lang.IncompatibleClassChangeError: Found interface com.google.gwt.core.ext.typeinfo.JClassType, but class was expected at com.google.gwt.resources.rg.CssResourceGenerator.computeOperableTypes(CssResourceGenerator.java: 587) at com.google.gwt.resources.rg.CssResourceGenerator.initReplacements(CssResourceGenerator.java: 682) at com.google.gwt.resources.rg.CssResourceGenerator.init(CssResourceGenerator.java: 461) at com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.initAndPrepare(AbstractClientBundleGenerator.java: 615) at com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.initAndPrepare(AbstractClientBundleGenerator.java: 654) at com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.generate(AbstractClientBundleGenerator.java: 243) at com.google.gwt.core.ext.GeneratorExtWrapper.generate(GeneratorExtWrapper.java: 48) at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrementally(GeneratorExtWrapper.java: 60) at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java: 662) at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java: 41) at com.google.gwt.dev.shell.StandardRebindOracle $Rebinder.rebind(StandardRebindOracle.java:74) at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java: 259) at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java: 248) at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(DistillerRebindPermutationOracle.java: 91) at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRebinds(WebModeCompilerFrontEnd.java: 106) at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox $CompilerImpl.process(AbstractCompiler.java:254) at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444) at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox $CompilerImpl.compile(AbstractCompiler.java:175) at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox $CompilerImpl.compile(AbstractCompiler.java:288) at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox $CompilerImpl.access$400(AbstractCompiler.java:145) [ERROR] Unexpected java.lang.IncompatibleClassChangeError: Found interface com.google.gwt.core.ext.typeinfo.JClassType, but class was expected at com.google.gwt.resources.rg.CssResourceGenerator.computeOperableTypes(CssResourceGenerator.java: 587) at com.google.gwt.resources.rg.CssResourceGenerator.initReplacements(CssResourceGenerator.java: 682) at com.google.gwt.resources.rg.CssResourceGenerator.init(CssResourceGenerator.java: 461) at com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.initAndPrepare(AbstractClientBundleGenerator.java: 615) at com.google.gwt.resources.rebind.context.AbstractClientBundleGenerator.initAndPrepare(AbstractClientBundleGenerator.java: 654) at
[gwt-contrib] RequestFactoryJarExtractor intermittently throws exceptions when running (issue1425805)
Reviewers: bobv, Description: RequestFactoryJarExtractor intermittently throws exceptions when running on a multi-core build machine. The build infrastructure did not catch the error and kept going, leaving a corrupt request factory jar file. This temporarily works around the problem by capping the number of threads used to process the jar file at 1. Please review this at http://gwt-code-reviews.appspot.com/1425805/ Affected files: M requestfactory/build.xml M user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java Index: requestfactory/build.xml === --- requestfactory/build.xml(revision 10021) +++ requestfactory/build.xml(working copy) @@ -32,6 +32,7 @@ pathelement path=${gwt.build.out}/dev/bin-test / pathelement path=${gwt.build.out}/user/bin-test / /classpath +jvmarg value=-ea/ arg value=@{target}/ arg file=${gwt.build.lib}/requestfactory-@{target}.jar/ /java Index: user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java === --- user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java (revision 10021) +++ user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java (working copy) @@ -624,6 +624,11 @@ WriteOperation.class, RequestFactorySource.class, SimpleEventBus.class }; + /** + * Maximum number of threads to use to run the Extractor. + */ + private static final int MAX_THREADS = 1; + static { ListClass? sharedClasses = Arrays.Class? asList(SHARED_CLASSES); @@ -687,7 +692,7 @@ RequestFactoryJarExtractor extractor = new RequestFactoryJarExtractor( errorContext, classLoader, jarEmitter, seeds, mode); extractor.run(); -System.exit(0); +System.exit(extractor.isExecutionFailed() ? 1 : 0); } /** @@ -742,6 +747,7 @@ private final MapType, Type seen = new HashMapType, Type(); private final SetString sources = new HashSetString(); private final ExecutorService writerService; + private boolean executionFailed = false; public RequestFactoryJarExtractor(Logger logger, Loader loader, Emitter emitter, ListClass? seeds, Mode mode) { @@ -751,7 +757,9 @@ this.seeds = seeds; this.mode = mode; -ex = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); +// TODO(zundel): Currently fixed at one thread to avoid concurrency issues. +int numThreads = Math.min(MAX_THREADS, Runtime.getRuntime().availableProcessors()); +ex = Executors.newFixedThreadPool(numThreads); writerService = Executors.newSingleThreadExecutor(); } @@ -770,6 +778,7 @@ } catch (InterruptedException retry) { } catch (ExecutionException e) { e.getCause().printStackTrace(); +executionFailed = true; } } emitter.close(); @@ -780,6 +789,10 @@ */ private void emit(final State state) { inProcess.add(writerService.submit(new EmitOneType(state))); + } + + private boolean isExecutionFailed() { +return executionFailed; } /** -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Adds support to EditorDrivers for boolean accessors (issue1427802)
Reviewers: , Description: Issue 6267: EditorDriver implementations do not recognise boolean accessors with the prefix is (as opposed to get). This patch makes EditorDrivers search for an is accessor when no get accessor is found. Please review this at http://gwt-code-reviews.appspot.com/1427802/ Affected files: dev/core/test/com/google/gwt/dev/javac/impl/JavaResourceBase.java user/src/com/google/gwt/editor/rebind/model/EditorModel.java user/test/com/google/gwt/editor/rebind/model/EditorModelTest.java Index: dev/core/test/com/google/gwt/dev/javac/impl/JavaResourceBase.java === --- dev/core/test/com/google/gwt/dev/javac/impl/JavaResourceBase.java (revision 10022) +++ dev/core/test/com/google/gwt/dev/javac/impl/JavaResourceBase.java (working copy) @@ -42,6 +42,22 @@ return code; } }; + public static final MockJavaResource BOOLEAN = new MockJavaResource(java.lang.Boolean) { +@Override +protected CharSequence getContent() { + StringBuffer code = new StringBuffer(); + code.append(package java.lang;\n); + code.append(public class Boolean {\n); + code.append( private boolean value;\n); + code.append( public Boolean(boolean value) {\n); + code.append(this.value = value;\n); + code.append( }\n); + code.append( public static Boolean valueOf(boolean b) { return new Boolean(b); }\n); + code.append( public boolean booleanValue() { return value; }\n); + code.append(}\n); + return code; +} + }; public static final MockJavaResource BYTE = new MockJavaResource( java.lang.Byte) { @Override @@ -401,7 +417,7 @@ public static MockJavaResource[] getStandardResources() { return new MockJavaResource[]{ -ANNOTATION, BYTE, CHARACTER, CLASS, CLASS_NOT_FOUND_EXCEPTION, +ANNOTATION, BOOLEAN, BYTE, CHARACTER, CLASS, CLASS_NOT_FOUND_EXCEPTION, COLLECTION, DOUBLE, ENUM, EXCEPTION, ERROR, FLOAT, INTEGER, IS_SERIALIZABLE, JAVASCRIPTOBJECT, LONG, MAP, NO_CLASS_DEF_FOUND_ERROR, NUMBER, OBJECT, SERIALIZABLE, SHORT, STRING, STRING_BUILDER, Index: user/test/com/google/gwt/editor/rebind/model/EditorModelTest.java === --- user/test/com/google/gwt/editor/rebind/model/EditorModelTest.java (revision 10022) +++ user/test/com/google/gwt/editor/rebind/model/EditorModelTest.java (working copy) @@ -187,7 +187,7 @@ types.findType(t.CompositeEditorDriver), rfedType); EditorData[] data = m.getEditorData(); -assertEquals(7, data.length); +assertEquals(8, data.length); String[] paths = new String[data.length]; String[] expressions = new String[data.length]; @@ -196,19 +196,20 @@ expressions[i] = data[i].getExpression(); } assertEquals(Arrays.asList(address, address.city, address.street, -person, person.lastModified, person.name, person.readonly), -Arrays.asList(paths)); +person, person.alive, person.lastModified, person.name, +person.readonly), Arrays.asList(paths)); // address is a property, person is a method in CompositeEditor assertEquals(Arrays.asList(address, address.city, address.street, -person(), person().lastModified, person().name, +person(), person().alive, person().lastModified, person().name, person().readonly), Arrays.asList(expressions)); assertTrue(data[0].isDelegateRequired()); assertFalse(data[0].isLeafValueEditor() || data[0].isValueAwareEditor()); assertTrue(data[3].isDelegateRequired()); assertFalse(data[3].isLeafValueEditor() || data[3].isValueAwareEditor()); -checkPersonLastModified(data[4]); -checkPersonName(data[5]); -checkPersonReadonly(data[6]); +checkPersonAlive(data[4]); +checkPersonLastModified(data[5]); +checkPersonName(data[6]); +checkPersonReadonly(data[7]); } public void testCyclicDriver() { @@ -258,14 +259,16 @@ EditorModel m = new EditorModel(logger, types.findType(t.PersonEditorDriver), rfedType); EditorData[] fields = m.getEditorData(); -assertEquals(3, fields.length); +assertEquals(4, fields.length); +// alive +checkPersonAlive(fields[0]); // lastModified -checkPersonLastModified(fields[0]); +checkPersonLastModified(fields[1]); // name -checkPersonName(fields[1]); +checkPersonName(fields[2]); // readonly -checkPersonReadonly(fields[2]); +checkPersonReadonly(fields[3]); } public void testFlatData() throws UnableToCompleteException { @@ -281,10 +284,11 @@ assertEquals(person, composite[1].getPropertyName()); EditorData[] person = m.getEditorData(types.findType(t.PersonEditor)); -assertEquals(3, person.length); -assertEquals(lastModified, person[0].getPropertyName()); -assertEquals(name, person[1].getPropertyName()); -
[gwt-contrib] Structural changes to UiBinder to make fields accessible via getters (issue1420804)
Reviewers: rjrjr, Description: Structural changes to UiBinder to make fields accessible via getters and creation lazy loaded. LazyPanel support is also added. Please review this at http://gwt-code-reviews.appspot.com/1420804/ Affected files: M user/src/com/google/gwt/uibinder/attributeparsers/FieldReferenceConverter.java M user/src/com/google/gwt/uibinder/client/UiBinderUtil.java M user/src/com/google/gwt/uibinder/elementparsers/FieldInterpreter.java M user/src/com/google/gwt/uibinder/elementparsers/HTMLPanelParser.java M user/src/com/google/gwt/uibinder/elementparsers/HtmlInterpreter.java A user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java M user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java M user/src/com/google/gwt/uibinder/elementparsers/WidgetPlaceholderInterpreter.java M user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java M user/src/com/google/gwt/uibinder/rebind/FieldManager.java M user/src/com/google/gwt/uibinder/rebind/FieldWriter.java M user/src/com/google/gwt/uibinder/rebind/HandlerEvaluator.java M user/src/com/google/gwt/uibinder/rebind/UiBinderGenerator.java M user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java M user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java M user/test/com/google/gwt/uibinder/elementparsers/ElementParserTester.java M user/test/com/google/gwt/uibinder/elementparsers/MockUiBinderWriter.java M user/test/com/google/gwt/uibinder/rebind/HandlerEvaluatorTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
Reviewers: rjrjr, jlabanca, Description: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Desktop, Mobile and Tablet devices. Uses App Engine as a backend. Requires Google App Engine SDK 1.4.2 or later. Please review this at http://gwt-code-reviews.appspot.com/1427803/ Affected files: A eclipse/samples/MobileWebApp/.classpath A eclipse/samples/MobileWebApp/.project M samples/build.xml M samples/common.ant.xml A samples/mobilewebapp/README.txt A samples/mobilewebapp/build.xml A samples/mobilewebapp/src/META-INF/jdoconfig.xml A samples/mobilewebapp/src/META-INF/persistence.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/FormFactor.gwt.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/MobileWebApp.gwt.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/ClientFactory.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/ClientFactoryImpl.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/ClientFactoryImplMobile.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/ClientFactoryImplTablet.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/MobileWebApp.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/MobileWebAppRequestFactory.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/MobileWebAppShell.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/MobileWebAppShellBase.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/TaskRequest.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/AppActivityMapper.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditView.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskListActivity.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskListView.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskEditView.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskEditView.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/MainMenuCellList.css A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/MobileWebAppShellDesktop.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/MobileWebAppShellDesktop.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/desktop/PieChart.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/MobileCellList.css A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/MobileTaskEditView.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/MobileTaskEditView.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/MobileTaskListView.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/MobileTaskListView.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/MobileWebAppShellMobile.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/MobileWebAppShellMobile.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/mobile/TaskProxyCell.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/place/AppPlaceHistoryMapper.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/place/TaskEditPlace.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/place/TaskListPlace.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/tablet/MobileWebAppShellTablet.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/tablet/MobileWebAppShellTablet.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/tablet/TabletResources.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/tablet/TabletTaskEditView.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/tablet/TabletTaskEditView.ui.xml A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/tablet/tabletStyles.css A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/server/domain/EMF.java A samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/server/domain/Task.java
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
I just realized all files are missing Google headers and other checkstyle issues, please wait on the review. On 2011/04/20 14:54:32, rchandia wrote: http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10035 committed - Edited wiki page RequestFactoryMovingParts through web user interface.
Revision: 10035 Author: b...@google.com Date: Wed Apr 20 08:29:27 2011 Log: Edited wiki page RequestFactoryMovingParts through web user interface. http://code.google.com/p/google-web-toolkit/source/detail?r=10035 Modified: /wiki/RequestFactoryMovingParts.wiki === --- /wiki/RequestFactoryMovingParts.wikiTue Apr 19 16:46:49 2011 +++ /wiki/RequestFactoryMovingParts.wikiWed Apr 20 08:29:27 2011 @@ -1,18 +1,21 @@ #summary A summary of the bits that make up RequestFactory +#labels Phase-Implementation * Work in progress * +For documentation on using RequestFactory, see the [http://code.google.com/webtoolkit/doc/latest/DevGuideRequestFactory.html RequestFactory developer's guide]. + wiki:toc level='2' / = Introduction = -The RequestFactory system is composed of a number of discrete component pieces. This document will describe the rough functionality of the RequestFactory components as a aid to developers who wish to work on RequestFactory or adapt RequestFactory to non-standard deployment environments. This document assumes a working knowledge of how to use RequestFactory. +The RequestFactory system is composed of a number of discrete component pieces. This document will describe the rough functionality of the RequestFactory components as an aid to developers who wish to work on RequestFactory or adapt RequestFactory to non-standard deployment environments. This document assumes a working knowledge of how to use RequestFactory. img src=http://i.imgur.com/WNqrg.jpg; title=If it doesn't fit on a sticky note, it's too complicated. alt=Schematic drawing of the major components of RequestFactory/ = Flow = - * Instantiate an instance of a `RequestFactory` via `GWT.create()` or `RequestFactorySource` + * Instantiate an instance of a `RequestFactory` via `GWT.create()` or [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/vm/RequestFactorySource.java RequestFactorySource] * Obtain an instance of `RequestContext` by calling an accessor method defined within the `RequestFactory` * Use `RequestContext.create()` and `RequestContext.edit()` to accumulate zero or more *operations* to be applied to domain objects by the server. * Obtain one or more `Request` objects to accumulate *invocations* on server code. @@ -20,9 +23,10 @@ * Call `Request.fire()` or `RequestContext.fire()` to send the accumulated data to the server. * The accumulated state is transmitted to the server, where the following operations take place: * All domain objects referred to by the payload will be loaded. -* All accumulated operations will be applied to the domain objects. +* Proxy objects are created for each referenced domain object. These proxies are used later in the request processing to minimuze the amount of data returned to the client. +* All accumulated operations will be applied to the domain objects by traversing properties of the proxies. * All method invocations in the payload are executed. -* The states of entities referred to in the original payload are compared to the up-to-date states of the entities after all work has been performed. +* The versions of entities referred to in the original payload are compared to the up-to-date versions of the entities after all work has been performed. * Entities with updated properties are enqueued to be sent back to the client. * Entities that can be no longer retrieved after all work has been performed are reported as having been deleted. * The return payload is assembled and sent to the client. @@ -83,7 +87,35 @@ Many samples include a `persist()` method as one of the first examples of server code, however this is merely a convention. RequestFactory does not treat this as a special method. == Request == + +img src=http://i.imgur.com/yaYFp.jpg; alt=Schematic diagram of AbstractRequestContext and related types / + +A `Request` and its related type `InstanceRequest` represent a method invocation to be performed on the server. The [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequest.java AbstractRequest] base type is extended by the generator for each `RequestContext` method declaration. The `Request` objects associate a `RequestData` bag of metadata and parameter values with the user-provided `Receiver` that was registered with `Request.to()` or implicitly by `Request.fire(Receiver)`. + == !RequestContext == + +A `RequestContext` maps domain code into the client's view. Each `RequestContext` must be annotated with a `@Service` or `@ServiceName` annotation. For a domain method with the following signature +{{{ +ReturnType methodName(SomeParam p0, int p1, String p2); +}}} +the mapped
[gwt-contrib] [google-web-toolkit] r10036 committed - Edited wiki page RequestFactoryMovingParts through web user interface.
Revision: 10036 Author: b...@google.com Date: Wed Apr 20 08:32:39 2011 Log: Edited wiki page RequestFactoryMovingParts through web user interface. http://code.google.com/p/google-web-toolkit/source/detail?r=10036 Modified: /wiki/RequestFactoryMovingParts.wiki === --- /wiki/RequestFactoryMovingParts.wikiWed Apr 20 08:29:27 2011 +++ /wiki/RequestFactoryMovingParts.wikiWed Apr 20 08:32:39 2011 @@ -132,6 +132,10 @@ The [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java SimpleRequestProcessor] is relatively stateless. All transient state necessary for processing an individual request is contained in a `RequestState` object. +== Wire format == + +RequestFactory supports two wire formats, a custom JSON-based protocol for communicating with `SimpleRequestProcessor` and a JSON-RPC format for communicating with other web services. These JSON messages are generated from AutoBean types defined in [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/shared/messages/MessageFactory.java MessageFactory]. + = JRE compatible implementation = RequestFactory provides a JRE-compatible implementation that can be used for fast integration tests, server performance monitoring, or ad-hoc utility clients. The implementation is accessed via the [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/vm/RequestFactorySource.java RequestFactorySource] type. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Structural changes to UiBinder to make fields accessible via getters (issue1420804)
http://gwt-code-reviews.appspot.com/1420804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Structural changes to UiBinder to make fields accessible via getters (issue1420804)
http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/client/UiBinderUtil.java File user/src/com/google/gwt/uibinder/client/UiBinderUtil.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/client/UiBinderUtil.java#newcode44 user/src/com/google/gwt/uibinder/client/UiBinderUtil.java:44: element = com.google.gwt.dom.client.Document.get() On 2011/04/19 21:07:20, rjrjr wrote: no need for the long name, this is imported Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java File user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java#newcode38 user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java:38: On 2011/04/19 21:07:20, rjrjr wrote: assert writer.useAttachableStrategyMabobThing(); Well, the parser is not registered if the flag is disabled so this point is never reached. But did the change anyway since this way I can spit out a better warning message. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java#newcode40 user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java:40: String widgetClassPath = writer.getClassPath(Widget.class); On 2011/04/19 21:07:20, rjrjr wrote: just use Widget.class.getName(), getClassPath adds no value I can see. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java#newcode42 user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java:42: String code = null; On 2011/04/19 21:07:20, rjrjr wrote: Use XMLElement#consumeSingleChildElement and you don't need your own one-and-only-one checks. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java File user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java#newcode95 user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java:95: com.google.gwt.uibinder.client.UiBinderUtil.LazyDomElement, elementPointer); On 2011/04/19 21:07:20, rjrjr wrote: Please use LazyDomElement.class.getName() Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java#newcode98 user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java:98: new com.google.gwt.uibinder.client.UiBinderUtil.LazyDomElement(%s), On 2011/04/19 21:07:20, rjrjr wrote: ditto Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java File user/src/com/google/gwt/uibinder/rebind/FieldManager.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode98 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:98: public void addAttachStatement(String fieldName, String format, Object... args) On 2011/04/19 21:07:20, rjrjr wrote: Don't duplicate the FieldWriter api. To get them add a new require(fieldName) method that wraps lookup() and does the die thing. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode102 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:102: logger.die(Failing adding attach statement. FieldName %s has no FieldWriter associated., On 2011/04/19 21:07:20, rjrjr wrote: die is for user error. If this is really developer error, make it a RuntimeException. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode112 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:112: public void addDetachStatement(String fieldName, String format, Object... args) On 2011/04/19 21:07:20, rjrjr wrote: ditto Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode126 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:126: public FieldWriter addFieldStatement(String fieldName, String format, Object... args) On 2011/04/19 21:07:20, rjrjr wrote: ditto Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode143 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:143: public String convertFieldToGetter(String fieldName) { On 2011/04/19 21:07:20, rjrjr wrote: Can this be a FieldWriter instance method? No because convertFieldToGetter() might be called before FieldWriter is actually created, so for now this is the easier way.
[gwt-contrib] Re: Structural changes to UiBinder to make fields accessible via getters (issue1420804)
Thanks for the quick update, looking now. One thought (doesn't gate this patch): I wonder if your code bloat problem would go away if your Widgets classes were JSOs. On Wed, Apr 20, 2011 at 9:03 AM, her...@google.com wrote: http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/client/UiBinderUtil.java File user/src/com/google/gwt/uibinder/client/UiBinderUtil.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/client/UiBinderUtil.java#newcode44 user/src/com/google/gwt/uibinder/client/UiBinderUtil.java:44: element = com.google.gwt.dom.client.Document.get() On 2011/04/19 21:07:20, rjrjr wrote: no need for the long name, this is imported Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java File user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java#newcode38 user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java:38: On 2011/04/19 21:07:20, rjrjr wrote: assert writer.useAttachableStrategyMabobThing(); Well, the parser is not registered if the flag is disabled so this point is never reached. But did the change anyway since this way I can spit out a better warning message. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java#newcode40 user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java:40: String widgetClassPath = writer.getClassPath(Widget.class); On 2011/04/19 21:07:20, rjrjr wrote: just use Widget.class.getName(), getClassPath adds no value I can see. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java#newcode42 user/src/com/google/gwt/uibinder/elementparsers/LazyPanelParser.java:42: String code = null; On 2011/04/19 21:07:20, rjrjr wrote: Use XMLElement#consumeSingleChildElement and you don't need your own one-and-only-one checks. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java File user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java#newcode95 user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java:95: com.google.gwt.uibinder.client.UiBinderUtil.LazyDomElement, elementPointer); On 2011/04/19 21:07:20, rjrjr wrote: Please use LazyDomElement.class.getName() Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java#newcode98 user/src/com/google/gwt/uibinder/elementparsers/WidgetInterpreter.java:98: new com.google.gwt.uibinder.client.UiBinderUtil.LazyDomElement(%s), On 2011/04/19 21:07:20, rjrjr wrote: ditto Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java File user/src/com/google/gwt/uibinder/rebind/FieldManager.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode98 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:98: public void addAttachStatement(String fieldName, String format, Object... args) On 2011/04/19 21:07:20, rjrjr wrote: Don't duplicate the FieldWriter api. To get them add a new require(fieldName) method that wraps lookup() and does the die thing. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode102 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:102: logger.die(Failing adding attach statement. FieldName %s has no FieldWriter associated., On 2011/04/19 21:07:20, rjrjr wrote: die is for user error. If this is really developer error, make it a RuntimeException. Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode112 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:112: public void addDetachStatement(String fieldName, String format, Object... args) On 2011/04/19 21:07:20, rjrjr wrote: ditto Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode126 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:126: public FieldWriter addFieldStatement(String fieldName, String format, Object... args) On 2011/04/19 21:07:20, rjrjr wrote: ditto Done. http://gwt-code-reviews.appspot.com/1420804/diff/1/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode143
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Structural changes to UiBinder to make fields accessible via getters (issue1420804)
Nearly there! http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/FieldManager.java File user/src/com/google/gwt/uibinder/rebind/FieldManager.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode97 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:97: public void addAttachStatement(String fieldName, String format, Object... args) Better, but, my point is that all of these methods are redundant with the FieldWriter api. required should be public and these methods should be inlined. http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java File user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java#newcode332 user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java:332: // change in several files. Sorry, not okay, this is a really common fail path and you're destroying our error reporting. Yes, I know it's behind the switch, but still. Just throw the exception and let your IDE show you where to add the throws lines. It really won't take that long. http://gwt-code-reviews.appspot.com/1420804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Another case identified where spam reduction reduced too much and didn't print a relavent (issue1420805)
Reviewers: jbrosenberg, tobyr, Description: Another case identified where spam reduction reduced too much and didn't print a relavent error message. Please review this at http://gwt-code-reviews.appspot.com/1420805/ Affected files: M user/src/com/google/gwt/junit/JUnitShell.java Index: user/src/com/google/gwt/junit/JUnitShell.java === --- user/src/com/google/gwt/junit/JUnitShell.java (revision 10033) +++ user/src/com/google/gwt/junit/JUnitShell.java (working copy) @@ -735,14 +735,10 @@ if (unit == null) { errMsg = The test class ' + typeName + ' was not found in module ' + moduleName + '; no compilation unit for that type was seen; -} else if (unit.isError()) { +} else { CompilationProblemReporter.logMissingTypeErrorWithHints(logger, typeName, compilationState); errMsg = The test class ' + typeName + ' had compile errors; check log for details; -} else { - errMsg = Unexpected error: the test class ' - + typeName - + ' appears to be valid, but no corresponding type was found in TypeOracle; please contact GWT support; } return new JUnitFatalLaunchException(errMsg); } -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Structural changes to UiBinder to make fields accessible via getters (issue1420804)
Both comments are somewhat related and reflect my phobia of big CLs. I'll address them still today. Thanks. http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/FieldManager.java File user/src/com/google/gwt/uibinder/rebind/FieldManager.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/FieldManager.java#newcode97 user/src/com/google/gwt/uibinder/rebind/FieldManager.java:97: public void addAttachStatement(String fieldName, String format, Object... args) On 2011/04/20 17:12:21, rjrjr wrote: Better, but, my point is that all of these methods are redundant with the FieldWriter api. required should be public and these methods should be inlined. Make sense, I was afraid that these methods were being called by other files which is totally stupid since they are new. I'll fix this. http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java File user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java (right): http://gwt-code-reviews.appspot.com/1420804/diff/6001/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java#newcode332 user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java:332: // change in several files. On 2011/04/20 17:12:21, rjrjr wrote: Sorry, not okay, this is a really common fail path and you're destroying our error reporting. Yes, I know it's behind the switch, but still. Just throw the exception and let your IDE show you where to add the throws lines. It really won't take that long. No problem at all, I'll have to add new files that must protect their methods with throws, so the CL should grow a little bit. Mechanical work, not a real issue. http://gwt-code-reviews.appspot.com/1420804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10037 committed - Edited wiki page RequestFactoryMovingParts through web user interface.
Revision: 10037 Author: b...@google.com Date: Wed Apr 20 11:46:29 2011 Log: Edited wiki page RequestFactoryMovingParts through web user interface. http://code.google.com/p/google-web-toolkit/source/detail?r=10037 Modified: /wiki/RequestFactoryMovingParts.wiki === --- /wiki/RequestFactoryMovingParts.wikiWed Apr 20 08:32:39 2011 +++ /wiki/RequestFactoryMovingParts.wikiWed Apr 20 11:46:29 2011 @@ -54,7 +54,7 @@ * The domain type is default-instantiable * `I getId()` must return a stable value * `V getVersion()` must change every time the meaningful state of the domain object changes. No assumption is made about the semantic meaning of the value, just that it is non-`equal()` to state version values. - * `static Entity find(I id)` is used to retrieve a previously-referenced entity, using a value returned by `getId()`. The `find()` method may return `null` to indicate that the entity has been deleted or is otherwise unavailable. + * `static Entity findEntity(I id)` is used to retrieve a previously-referenced entity, using a value returned by `getId()`. The `findEntity()` method may return `null` to indicate that the entity has been deleted or is otherwise unavailable. A specific naming scheme is used for this method: `find + Entity.class.getSimpleName()`. Domain types that cannot satisfy some or all of the requirements of the entity protocol may participate as entities by using a `Locator`. @@ -92,6 +92,10 @@ A `Request` and its related type `InstanceRequest` represent a method invocation to be performed on the server. The [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequest.java AbstractRequest] base type is extended by the generator for each `RequestContext` method declaration. The `Request` objects associate a `RequestData` bag of metadata and parameter values with the user-provided `Receiver` that was registered with `Request.to()` or implicitly by `Request.fire(Receiver)`. +The `InstanceRequest` interface allows instance methods on domain pojo types to be called. The `InstanceRequest.using()` method sets the implicit 0-th argument of the invocation to the domain object represented by the proxy. + +Instance methods on service objects can be called by providing a `ServiceLocator` type which will provide the instance of an object on which to invoke the desired business logic method. This allows dependency-injection frameworks to be used to configure the service object. + == !RequestContext == A `RequestContext` maps domain code into the client's view. Each `RequestContext` must be annotated with a `@Service` or `@ServiceName` annotation. For a domain method with the following signature @@ -102,7 +106,6 @@ {{{ RequestReturnTypeProxy methodName(SomeParamProxy p0, int p1, String p2); }}} - The bulk of the `RequestContext` implementation can be found in [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestContext.java AbstractRequestContext]. @@ -116,16 +119,16 @@ A [http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/server/RequestState.java RequestState] is used by `SimpleRequestProcessor` to encapsulate all temporary data necessary to process a single request. In general, a `RequestState` maps domain objects to id objects and the id objects to proxy instances. The proxy instances have ephemeral tag values that associate them with their domain objects. -== !ServiceLocator == - -A `ServiceLocator` is used to provide instance objects for non-static domain methods. Implementations of `ServiceLocators` are assumed to be default-instantiable, however this may be changed by providing alternate implementation of `ServiceLayer.createServiceLocator()`. - == !ServiceLayer == The `ServiceLayer` mediates all interactions between the `SimpleRequestProcessor` and the domain. RequestFactory's default behaviors may be overridden by providing one or more `ServiceLayerDecorator` instance to `ServiceLayer.create()`. For instance, the `ServiceLayer.setProperty()` method can be used to provide access control for specific users. Because the API expressed by `ServiceLayer` is intimately tied to the services required by the `SimpleRequestProcessor`, the API is subject to change over time. Efforts will be made to keep `ServiceLayerDecorator` source-compatible, however this API should be treated as only semi-public. Developers who are advanced enough to take advantage of decorating the `ServiceLayer` will be able to adapt to changes as they come up. +== !ServiceLocator == + +A `ServiceLocator` is used to provide instance objects for non-static domain methods that are not defined on a
[gwt-contrib] Re: Another case identified where spam reduction reduced too much and didn't print a relavent (issue1420805)
On 2011/04/20 18:00:37, zundel wrote: LGTM http://gwt-code-reviews.appspot.com/1420805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10038 committed - Some Java AST cleanups....
Revision: 10038 Author: sco...@google.com Date: Wed Apr 20 08:47:17 2011 Log: Some Java AST cleanups. http://gwt-code-reviews.appspot.com/1422805/ Review by: jbrosenb...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10038 Modified: /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/HasType.java /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JAbsentArrayDimension.java /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNameOf.java /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNewArray.java /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/CloneExpressionVisitor.java /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/EnumOrdinalizer.java /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/ImplementClassLiteralsAsFields.java /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/ReplaceRebinds.java /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/TypeRemapper.java === --- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/HasType.java Thu Apr 5 13:07:16 2007 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/HasType.java Wed Apr 20 08:47:17 2011 @@ -19,5 +19,8 @@ * Interface implemented by Java entities that have a type associated with them. */ public interface HasType { + /** + * Returns the type of this expression. + */ JType getType(); } === --- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JAbsentArrayDimension.java Tue Apr 19 10:10:18 2011 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JAbsentArrayDimension.java Wed Apr 20 08:47:17 2011 @@ -26,10 +26,7 @@ public static final JExpression INSTANCE = new JAbsentArrayDimension(SourceOrigin.UNKNOWN); - /** - * These are only supposed to be constructed by JProgram. - */ - JAbsentArrayDimension(SourceInfo sourceInfo) { + private JAbsentArrayDimension(SourceInfo sourceInfo) { super(sourceInfo); } === --- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNameOf.java Fri Apr 2 14:35:01 2010 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNameOf.java Wed Apr 20 08:47:17 2011 @@ -23,12 +23,13 @@ public class JNameOf extends JExpression { private final HasName node; - private final JNonNullType stringType; - - public JNameOf(SourceInfo info, JNonNullType stringType, HasName node) { + private final JClassType stringType; + + public JNameOf(SourceInfo info, JClassType stringType, HasName node) { super(info); this.node = node; this.stringType = stringType; +assert stringType.getName().equals(java.lang.String); } public HasName getNode() { @@ -36,7 +37,7 @@ } public JNonNullType getType() { -return stringType; +return stringType.getNonNull(); } @Override === --- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNewArray.java Tue Apr 19 10:10:18 2011 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNewArray.java Wed Apr 20 08:47:17 2011 @@ -44,14 +44,14 @@ classLiterals.add(classLit); cur = ((JArrayType) cur).getElementType(); } -return new JNewArray(info, arrayType.getNonNull(), dims, null, classLiterals); +return new JNewArray(info, arrayType, dims, null, classLiterals); } public static JNewArray createInitializers(SourceInfo info, JArrayType arrayType, ListJExpression initializers) { ListJClassLiteral classLiterals = new ArrayListJClassLiteral(); classLiterals.add(new JClassLiteral(info.makeChild(), arrayType)); -return new JNewArray(info, arrayType.getNonNull(), null, initializers, classLiterals); +return new JNewArray(info, arrayType, null, initializers, classLiterals); } public final ListJExpression dims; @@ -63,12 +63,12 @@ */ private final ListJClassLiteral classLiterals; - private JNonNullType type; - - public JNewArray(SourceInfo info, JNonNullType type, ListJExpression dims, + private JArrayType type; + + public JNewArray(SourceInfo info, JArrayType type, ListJExpression dims, ListJExpression initializers, ListJClassLiteral classLits) { super(info); -setType(type); +this.type = type; this.dims = dims; this.initializers = initializers; this.classLiterals = classLits; @@ -97,7 +97,7 @@ } public JNonNullType getType() { -return type; +return type.getNonNull(); } @Override @@ -120,8 +120,7 @@ return false; } - public void setType(JNonNullType type) { -assert type.getUnderlyingType() instanceof JArrayType; + public void setType(JArrayType type) { this.type = type; } === --- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java Sat Jan 22 17:19:44 2011 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java Wed Apr 20 08:47:17 2011 @@ -52,6 +52,11 @@ public boolean
[gwt-contrib] [google-web-toolkit] r10039 committed - Implement EntryMethodHolder.init in source....
Revision: 10039 Author: gwt.mirror...@gmail.com Date: Wed Apr 20 11:54:19 2011 Log: Implement EntryMethodHolder.init in source. Stub out EntryMethodHolder.init() so we can use the existing empty method instead of having to create it from whole cloth. http://gwt-code-reviews.appspot.com/1421803/ http://code.google.com/p/google-web-toolkit/source/detail?r=10039 Modified: /trunk/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java /trunk/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/EntryMethodHolder.java === --- /trunk/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java Tue Apr 19 10:10:18 2011 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java Wed Apr 20 11:54:19 2011 @@ -872,7 +872,7 @@ return dependencyRecorder; } - private static JMethodCall createReboundModuleLoad(TreeLogger logger, + private static JMethodCall createReboundModuleLoad(TreeLogger logger, SourceInfo info, JDeclaredType reboundEntryType, String originalMainClassName, JDeclaredType enclosingType) throws UnableToCompleteException { if (!(reboundEntryType instanceof JClassType)) { @@ -902,10 +902,9 @@ throw new UnableToCompleteException(); } -SourceInfo sourceInfo = entryClass.getSourceInfo(); JExpression qualifier = null; if (!entryMethod.isStatic()) { - qualifier = JGwtCreate.createInstantiationExpression(sourceInfo, entryClass, enclosingType); + qualifier = JGwtCreate.createInstantiationExpression(info, entryClass, enclosingType); if (qualifier == null) { logger.log(TreeLogger.ERROR, @@ -915,21 +914,17 @@ throw new UnableToCompleteException(); } } -return new JMethodCall(sourceInfo, qualifier, entryMethod); +return new JMethodCall(info, qualifier, entryMethod); } private static void findEntryPoints(TreeLogger logger, RebindPermutationOracle rpo, String[] mainClassNames, JProgram program) throws UnableToCompleteException { Event findEntryPointsEvent = SpeedTracerLogger.start(CompilerEventType.FIND_ENTRY_POINTS); -SourceInfo sourceInfo = program.createSourceInfoSynthetic(JavaToJavaScriptCompiler.class); -JMethod bootStrapMethod = -program.createMethod(sourceInfo, init, program.getIndexedType(EntryMethodHolder), -program.getTypeVoid(), false, true, true, false, false); -bootStrapMethod.freezeParamTypes(); -bootStrapMethod.setSynthetic(); +JMethod bootStrapMethod = program.getIndexedMethod(EntryMethodHolder.init); JMethodBody body = (JMethodBody) bootStrapMethod.getBody(); JBlock block = body.getBlock(); +SourceInfo info = block.getSourceInfo().makeChild(); // Also remember $entry, which we'll handle specially in GenerateJsAst JMethod registerEntry = program.getIndexedMethod(Impl.registerEntry); @@ -947,7 +942,7 @@ JMethod mainMethod = findMainMethod(mainType); if (mainMethod != null mainMethod.isStatic()) { -JMethodCall onModuleLoadCall = new JMethodCall(null, null, mainMethod); +JMethodCall onModuleLoadCall = new JMethodCall(info, null, mainMethod); block.addStmt(onModuleLoadCall.makeStatement()); continue; } @@ -965,7 +960,7 @@ } JMethodCall onModuleLoadCall = -createReboundModuleLoad(logger, resultType, mainClassName, bootStrapMethod +createReboundModuleLoad(logger, info, resultType, mainClassName, bootStrapMethod .getEnclosingType()); resultTypes.add((JClassType) resultType); entryCalls.add(onModuleLoadCall); @@ -974,7 +969,7 @@ block.addStmt(entryCalls.get(0).makeStatement()); } else { JReboundEntryPoint reboundEntryPoint = -new JReboundEntryPoint(mainType.getSourceInfo(), mainType, resultTypes, entryCalls); +new JReboundEntryPoint(info, mainType, resultTypes, entryCalls); block.addStmt(reboundEntryPoint); } } === --- /trunk/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/EntryMethodHolder.java Fri Oct 10 08:56:20 2008 +++ /trunk/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/EntryMethodHolder.java Wed Apr 20 11:54:19 2011 @@ -19,5 +19,7 @@ * This class holds the boot strap entry method that the compiler generates. */ public class EntryMethodHolder { - -} + public static final void init() { +// Filled in by the compiler to call entry methods. + } +} -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: RequestFactoryJarExtractor intermittently throws exceptions when running (issue1425805)
http://gwt-code-reviews.appspot.com/1425805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10040 committed - Adding missing xalan and cup jars
Revision: 10040 Author: gwt.mirror...@gmail.com Date: Wed Apr 20 12:14:49 2011 Log: Adding missing xalan and cup jars http://code.google.com/p/google-web-toolkit/source/detail?r=10040 Added: /tools/lib/cup /tools/lib/cup/java-cup-11a-src.jar /tools/lib/cup/java-cup-11a.jar /tools/lib/xalan/xalan-2.7.1-nocup.jar === --- /dev/null +++ /tools/lib/cup/java-cup-11a-src.jar Wed Apr 20 12:14:49 2011 Binary file, no diff available. === --- /dev/null +++ /tools/lib/cup/java-cup-11a.jar Wed Apr 20 12:14:49 2011 Binary file, no diff available. === --- /dev/null +++ /tools/lib/xalan/xalan-2.7.1-nocup.jar Wed Apr 20 12:14:49 2011 File is too large to display a diff. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
LGTM http://gwt-code-reviews.appspot.com/1427803/diff/4001/samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java File samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java (right): http://gwt-code-reviews.appspot.com/1427803/diff/4001/samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java#newcode202 samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java:202: // TODO Add notification pop-up You can leave this TODO as we need to implement some type of notification. http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
http://gwt-code-reviews.appspot.com/1427803/diff/4001/samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java File samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java (right): http://gwt-code-reviews.appspot.com/1427803/diff/4001/samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java#newcode202 samples/mobilewebapp/src/com/google/gwt/sample/mobilewebapp/client/activity/TaskEditActivity.java:202: // TODO Add notification pop-up On 2011/04/20 19:18:14, jlabanca wrote: You can leave this TODO as we need to implement some type of notification. Done. http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Another case identified where spam reduction reduced too much and didn't print a relavent (issue1420805)
LGTM http://gwt-code-reviews.appspot.com/1420805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: RequestFactoryJarExtractor intermittently throws exceptions when running (issue1425805)
http://gwt-code-reviews.appspot.com/1425805/diff/3002/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java File user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java (right): http://gwt-code-reviews.appspot.com/1425805/diff/3002/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java#newcode750 user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java:750: private boolean executionFailed = false; Place in alphabetical order. http://gwt-code-reviews.appspot.com/1425805/diff/3002/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java#newcode760 user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java:760: int numThreads = Math.min(MAX_THREADS, Runtime.getRuntime().availableProcessors()); Why limit to 4? http://gwt-code-reviews.appspot.com/1425805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Comment on RequestFactoryMovingParts in google-web-toolkit
Comment by rj...@google.com: From flow: Entities with updated properties are enqueued to be sent back to the client. I thought you just send back their ids, not the full objects. For more information: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryMovingParts -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Removed unused template file. (issue1425806)
Reviewers: jlabanca, Description: Removed unused template file. Template files that do not end in src or bin are silently ignored. Please review this at http://gwt-code-reviews.appspot.com/1425806/ Affected files: D user/src/com/google/gwt/user/tools/templates/eclipse/_moduleShortName_.launch Index: user/src/com/google/gwt/user/tools/templates/eclipse/_moduleShortName_.launch === --- user/src/com/google/gwt/user/tools/templates/eclipse/_moduleShortName_.launch (revision 9869) +++ user/src/com/google/gwt/user/tools/templates/eclipse/_moduleShortName_.launch (working copy) @@ -1,14 +0,0 @@ -?xml version=1.0 encoding=UTF-8? -launchConfiguration type=org.eclipse.jdt.launching.localJavaApplication -booleanAttribute key=org.eclipse.jdt.launching.DEFAULT_CLASSPATH value=false/ -stringAttribute key=org.eclipse.jdt.launching.MAIN_TYPE value=@shellClass/ -listAttribute key=org.eclipse.jdt.launching.CLASSPATH -listEntry value=lt;?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?gt;#10;lt;runtimeClasspathEntry containerPath=quot;org.eclipse.jdt.launching.JRE_CONTAINERquot; javaProject=quot;@moduleShortNamequot; path=quot;1quot; type=quot;4quot;/gt;#10;/ -listEntry value=lt;?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?gt;#10;lt;runtimeClasspathEntry internalArchive=quot;/@moduleShortName/@srcFolderquot; path=quot;3quot; type=quot;2quot;/gt;#10;/ -listEntry value=lt;?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?gt;#10;lt;runtimeClasspathEntry id=quot;org.eclipse.jdt.launching.classpathentry.defaultClasspathquot;gt;#10;lt;memento project=quot;@moduleShortNamequot;/gt;#10;lt;/runtimeClasspathEntrygt;#10;/ -/listAttribute -stringAttribute key=org.eclipse.jdt.launching.VM_ARGUMENTS value=-Xmx256M/ -stringAttribute key=org.eclipse.jdt.launching.PROGRAM_ARGUMENTS value=-war @warFolder -startupUrl @startupUrl @moduleName/ -stringAttribute key=org.eclipse.jdt.launching.PROJECT_ATTR value=@moduleShortName/ -booleanAttribute key=org.eclipse.debug.core.appendEnvironmentVariables value=true/ -/launchConfiguration -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Comment on RequestFactoryMovingParts in google-web-toolkit
Comment by rj...@google.com: An Entity is any object with a well-defined identity and version. Might mention that version is a bit of a misnomer, since it doesn't need to be Comparable. More of a hash tag. For more information: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryMovingParts -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: RequestFactoryJarExtractor intermittently throws exceptions when running (issue1425805)
http://gwt-code-reviews.appspot.com/1425805/diff/3002/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java File user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java (right): http://gwt-code-reviews.appspot.com/1425805/diff/3002/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java#newcode760 user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java:760: int numThreads = Math.min(MAX_THREADS, Runtime.getRuntime().availableProcessors()); On 2011/04/20 19:25:21, bobv wrote: Why limit to 4? The real reason was to just keep a way to throttle the number of threads. Do you prefer another limit or would prefer an unlimited number of threads? Running several instances of this job with 4 threads on an 8 core box runs in zero seconds (reported by ant) on my box. I'm not sure more threads are going to speed it up any more. http://gwt-code-reviews.appspot.com/1425805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Removed unused template file. (issue1425806)
LGTM http://gwt-code-reviews.appspot.com/1425806/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Comment on RequestFactoryMovingParts in google-web-toolkit
Comment by rj...@google.com: From RequestFactoryinterfaceValidator: proxy type can exempted from validation, missing be For more information: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryMovingParts -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Comment on RequestFactoryMovingParts in google-web-toolkit
Comment by rj...@google.com: Developers who are advanced enough to take advantage of decorating the ServiceLayer will be able to adapt to changes as they come up. Its javadoc should say so. For more information: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryMovingParts -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
Submitted as of r10041 http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10043 committed - Removed unused template file....
Revision: 10043 Author: rchan...@google.com Date: Wed Apr 20 10:07:50 2011 Log: Removed unused template file. Template files that do not end in src or bin are silently ignored. Review at http://gwt-code-reviews.appspot.com/1425806 Review by: jlaba...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10043 Deleted: /trunk/user/src/com/google/gwt/user/tools/templates/eclipse/_moduleShortName_.launch === --- /trunk/user/src/com/google/gwt/user/tools/templates/eclipse/_moduleShortName_.launch Mon Mar 7 08:21:08 2011 +++ /dev/null @@ -1,14 +0,0 @@ -?xml version=1.0 encoding=UTF-8? -launchConfiguration type=org.eclipse.jdt.launching.localJavaApplication -booleanAttribute key=org.eclipse.jdt.launching.DEFAULT_CLASSPATH value=false/ -stringAttribute key=org.eclipse.jdt.launching.MAIN_TYPE value=@shellClass/ -listAttribute key=org.eclipse.jdt.launching.CLASSPATH -listEntry value=lt;?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?gt;#10;lt;runtimeClasspathEntry containerPath=quot;org.eclipse.jdt.launching.JRE_CONTAINERquot; javaProject=quot;@moduleShortNamequot; path=quot;1quot; type=quot;4quot;/gt;#10;/ -listEntry value=lt;?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?gt;#10;lt;runtimeClasspathEntry internalArchive=quot;/@moduleShortName/@srcFolderquot; path=quot;3quot; type=quot;2quot;/gt;#10;/ -listEntry value=lt;?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?gt;#10;lt;runtimeClasspathEntry id=quot;org.eclipse.jdt.launching.classpathentry.defaultClasspathquot;gt;#10;lt;memento project=quot;@moduleShortNamequot;/gt;#10;lt;/runtimeClasspathEntrygt;#10;/ -/listAttribute -stringAttribute key=org.eclipse.jdt.launching.VM_ARGUMENTS value=-Xmx256M/ -stringAttribute key=org.eclipse.jdt.launching.PROGRAM_ARGUMENTS value=-war @warFolder -startupUrl @startupUrl @moduleName/ -stringAttribute key=org.eclipse.jdt.launching.PROJECT_ATTR value=@moduleShortName/ -booleanAttribute key=org.eclipse.debug.core.appendEnvironmentVariables value=true/ -/launchConfiguration -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Removed unused template file. (issue1425806)
Submitted as of r10043 http://gwt-code-reviews.appspot.com/1425806/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Introducing CustomScrollPanel, a subclass of ScrollPanel that lets users define their own scroll... (issue1427804)
Reviewers: rchandia, Description: Introducing CustomScrollPanel, a subclass of ScrollPanel that lets users define their own scrollbars. By default, we use NativeVerticalScrollbar and NativeHorizontalScrollbar, but in the future we might introduce thin scrollbars for mobile devices. The scrollbars are semi-transparent until the user hovers them, at which time they transition to 100% opacity (on browsers that do not support CSS transitions, they immediately become opaque). In RTL, the vertical scrollbar appears on the left side (many browsers get this wrong natively). CustomScrollPanel looks and acts almost exactly like a normal scrollable div, with one important exception. The scrollbars in a CustomScrollPanel are overlaid on top of the content instead of adjacent to it, so when scrollbars appear, the content does not require relayout. This can be useful for layout when aligning items directly above and/or below the CustomScrollPanel, because the content will always flow to the end of the panel. CustomScrollPanel is a pre-requisite for a CellTable with fixed headers/footers and scrollable content area. It allows the header/footer tables to be the same width as the content table regardless of whether or not scrollbars appear. If we tried to a regular ScrollPanel, we would need active layout to adjust the width of the header/footer tables to account for the appearance of scrollbars. In terms of implementation details, the content is actually in a scrollable div, but the scrollbars of the div are hidden behind the outer viewport. So, all of the normal scrolling mechanisms (click and drag text, mousewheel, page up/down) work normally. We use the ResizeLayoutPanel implementation to detect when the content is resize, and show/hide scrollbars accordingly. You can view a demo here: http://cscroll.jlabanca-testing.appspot.com/ Please review this at http://gwt-code-reviews.appspot.com/1427804/ Affected files: M user/src/com/google/gwt/user/ResizeLayoutPanel.gwt.xml A user/src/com/google/gwt/user/Scroll.gwt.xml D user/src/com/google/gwt/user/ScrollPanel.gwt.xml M user/src/com/google/gwt/user/User.gwt.xml A user/src/com/google/gwt/user/client/ui/AbstractNativeScrollbar.java M user/src/com/google/gwt/user/client/ui/AttachDetachException.java A user/src/com/google/gwt/user/client/ui/CustomScrollPanel.css A user/src/com/google/gwt/user/client/ui/CustomScrollPanel.java A user/src/com/google/gwt/user/client/ui/HorizontalScrollbar.java A user/src/com/google/gwt/user/client/ui/NativeHorizontalScrollbar.css A user/src/com/google/gwt/user/client/ui/NativeHorizontalScrollbar.java A user/src/com/google/gwt/user/client/ui/NativeHorizontalScrollbar.ui.xml A user/src/com/google/gwt/user/client/ui/NativeHorizontalScrollbarTransparent.css A user/src/com/google/gwt/user/client/ui/NativeVerticalScrollbar.css A user/src/com/google/gwt/user/client/ui/NativeVerticalScrollbar.java A user/src/com/google/gwt/user/client/ui/NativeVerticalScrollbar.ui.xml A user/src/com/google/gwt/user/client/ui/NativeVerticalScrollbarTransparent.css M user/src/com/google/gwt/user/client/ui/ResizeLayoutPanel.java A user/src/com/google/gwt/user/client/ui/ScrollImpl.java M user/src/com/google/gwt/user/client/ui/ScrollPanel.java A user/src/com/google/gwt/user/client/ui/VerticalScrollbar.java M user/test/com/google/gwt/user/UISuite.java A user/test/com/google/gwt/user/client/ui/CustomScrollPanelTest.java A user/test/com/google/gwt/user/client/ui/NativeHorizontalScrollbarTest.java A user/test/com/google/gwt/user/client/ui/NativeScrollbarTestBase.java A user/test/com/google/gwt/user/client/ui/NativeVerticalScrollbarTest.java M user/test/com/google/gwt/user/client/ui/ScrollPanelTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Replace HeaderPanel's custom iterator with a new package protected FiniteWidgetIterator that ite... (issue1420807)
Reviewers: rjrjr, Description: Replace HeaderPanel's custom iterator with a new package protected FiniteWidgetIterator that iterates over children in a WidgetProvider. FiniteWidgetIterator is a generic iterator over a finite set of child widgets (versus WidgetIterator, which iterators over panel of arbitrary size). I intended to use FiniteWidgetIterator in another change then ended up not needing it, but I'm sure it will come in handy for other widgets. Please review this at http://gwt-code-reviews.appspot.com/1420807/ Affected files: A user/src/com/google/gwt/user/client/ui/FiniteWidgetIterator.java M user/src/com/google/gwt/user/client/ui/HeaderPanel.java M user/test/com/google/gwt/user/UISuite.java A user/test/com/google/gwt/user/client/ui/FiniteWidgetIteratorTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Test that references to PredefinedFormat values work with DateLabel (issue1427805)
LGTM http://gwt-code-reviews.appspot.com/1427805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] First step of isolating a bunch of code that is used for generating (issue1422807)
Reviewers: xtof, unnurg, Description: First step of isolating a bunch of code that is used for generating code, both within a GWT generator or as a separate build step for building server-side implementations. Also, this improves StringGenerator to produce String-valued expressions like those before SafeHtml was added. Please review this at http://gwt-code-reviews.appspot.com/1422807/ Affected files: M tools/cldr-import/src/com/google/gwt/tools/cldr/DateTimeFormatInfoProcessor.java A user/src/com/google/gwt/codegen/rebind/package-info.java A user/src/com/google/gwt/codegen/server/PlainStringGenerator.java A user/src/com/google/gwt/codegen/server/SafeHtmlStringGenerator.java A user/src/com/google/gwt/codegen/server/StringGenerator.java A user/src/com/google/gwt/codegen/server/package-info.java M user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java D user/src/com/google/gwt/i18n/rebind/StringGenerator.java A user/test/com/google/gwt/codegen/CodeGenSuite.java A user/test/com/google/gwt/codegen/server/StringGeneratorTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10044 committed - RequestFactoryJarExtractor intermittently throws exceptions when runni...
Revision: 10044 Author: zun...@google.com Date: Wed Apr 20 10:50:16 2011 Log: RequestFactoryJarExtractor intermittently throws exceptions when running on a multi-core build machine. The build infrastructure did not catch the error and kept going, leaving a corrupt request factory jar file. This change updates the Map and Sets used to be concurrent datastructures and caps the number of threads at 4. Review at http://gwt-code-reviews.appspot.com/1425805 Review by: robertvaw...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10044 Modified: /trunk/requestfactory/build.xml /trunk/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java === --- /trunk/requestfactory/build.xml Tue Apr 5 11:50:28 2011 +++ /trunk/requestfactory/build.xml Wed Apr 20 10:50:16 2011 @@ -32,6 +32,7 @@ pathelement path=${gwt.build.out}/dev/bin-test / pathelement path=${gwt.build.out}/user/bin-test / /classpath +jvmarg value=-ea/ arg value=@{target}/ arg file=${gwt.build.lib}/requestfactory-@{target}.jar/ /java === --- /trunk/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java Mon Apr 18 16:25:25 2011 +++ /trunk/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java Wed Apr 20 10:50:16 2011 @@ -72,8 +72,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -81,6 +79,8 @@ import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentSkipListSet; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -624,6 +624,11 @@ WriteOperation.class, RequestFactorySource.class, SimpleEventBus.class }; + /** + * Maximum number of threads to use to run the Extractor. + */ + private static final int MAX_THREADS = 4; + static { ListClass? sharedClasses = Arrays.Class? asList(SHARED_CLASSES); @@ -687,7 +692,7 @@ RequestFactoryJarExtractor extractor = new RequestFactoryJarExtractor( errorContext, classLoader, jarEmitter, seeds, mode); extractor.run(); -System.exit(0); +System.exit(extractor.isExecutionFailed() ? 1 : 0); } /** @@ -732,6 +737,7 @@ return false; } + private boolean executionFailed = false; private final Emitter emitter; private final ExecutorService ex; private final BlockingQueueFuture? inProcess = new LinkedBlockingQueueFuture?(); @@ -739,8 +745,8 @@ private final Loader loader; private final Mode mode; private final ListClass? seeds; - private final MapType, Type seen = new HashMapType, Type(); - private final SetString sources = new HashSetString(); + private final MapType, Type seen = new ConcurrentHashMapType, Type(); + private final SetString sources = new ConcurrentSkipListSetString(); private final ExecutorService writerService; public RequestFactoryJarExtractor(Logger logger, Loader loader, @@ -751,7 +757,8 @@ this.seeds = seeds; this.mode = mode; -ex = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); +int numThreads = Math.min(MAX_THREADS, Runtime.getRuntime().availableProcessors()); +ex = Executors.newFixedThreadPool(numThreads); writerService = Executors.newSingleThreadExecutor(); } @@ -770,6 +777,7 @@ } catch (InterruptedException retry) { } catch (ExecutionException e) { e.getCause().printStackTrace(); +executionFailed = true; } } emitter.close(); @@ -781,6 +789,10 @@ private void emit(final State state) { inProcess.add(writerService.submit(new EmitOneType(state))); } + + private boolean isExecutionFailed() { +return executionFailed; + } /** * Look at constant values from the bytecode, processing referenced types. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Small generator testing framework (issue1424805)
LGTM This is sweet. http://gwt-code-reviews.appspot.com/1424805/diff/1/dev/core/src/com/google/gwt/dev/javac/testing/GeneratorContextBuilder.java File dev/core/src/com/google/gwt/dev/javac/testing/GeneratorContextBuilder.java (right): http://gwt-code-reviews.appspot.com/1424805/diff/1/dev/core/src/com/google/gwt/dev/javac/testing/GeneratorContextBuilder.java#newcode42 dev/core/src/com/google/gwt/dev/javac/testing/GeneratorContextBuilder.java:42: * {@link JavaResourceBase#getStandardResources()}. Kind of weird for public api to point into an impl package this way. http://gwt-code-reviews.appspot.com/1424805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Replace HeaderPanel's custom iterator with a new package protected FiniteWidgetIterator that ite... (issue1420807)
LGTM http://gwt-code-reviews.appspot.com/1420807/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10045 committed - Remove the ability to deduce the script base using the marker script i...
Revision: 10045 Author: gwt.mirror...@gmail.com Date: Wed Apr 20 14:47:20 2011 Log: Remove the ability to deduce the script base using the marker script in the xsiframe linker since it doesn't work in FF3.5 and we can't make it work without sacrificing late loading Review at http://gwt-code-reviews.appspot.com/1425801 Review by: zun...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10045 Added: /trunk/dev/core/src/com/google/gwt/core/ext/linker/impl/computeScriptBaseOld.js Modified: /trunk/dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java /trunk/dev/core/src/com/google/gwt/core/ext/linker/impl/computeScriptBase.js === --- /dev/null +++ /trunk/dev/core/src/com/google/gwt/core/ext/linker/impl/computeScriptBaseOld.js Wed Apr 20 14:47:20 2011 @@ -0,0 +1,145 @@ +/* + * Copyright 2010 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. + */ + +/** + * Determine our own script's URL by trying various things + * + * First - use the baseUrl meta tag if it exists + * Second - look for a script tag with the src set to MODULE_NAME.nocache.js and + * if it's found, use it to determine the baseUrl + * Third - if the page is not already loaded, try to use some document.write + * magic to install a temporary tag and use that to determine the baseUrl. + * + * This is included into the selection scripts + * wherever COMPUTE_SCRIPT_BASE appears with underlines + * on each side. + */ + +function computeScriptBase() { + + // Helper methods to process tags == + // Gets the part of a url up to and including the 'path' portion. + function getDirectoryOfFile(path) { +// Truncate starting at the first '?' or '#', whichever comes first. +var hashIndex = path.lastIndexOf('#'); +if (hashIndex == -1) { + hashIndex = path.length; +} +var queryIndex = path.indexOf('?'); +if (queryIndex == -1) { + queryIndex = path.length; +} +var slashIndex = path.lastIndexOf('/', Math.min(queryIndex, hashIndex)); +return (slashIndex = 0) ? path.substring(0, slashIndex + 1) : ''; + } + + function ensureAbsoluteUrl(url) { +if ((url.match(/^\w+:\/\//))) { + // If the URL is obviously absolute, do nothing. +} else { + // Probably a relative URL; use magic to make the browser absolutify it. + // I wish there were a better way to do this, but this seems the only + // sure way! (A side benefit is it preloads clear.cache.gif) + // Note: this trick is harmless if the URL was really already absolute. + var img = $doc.createElement(img); + img.src = url + 'clear.cache.gif'; + url = getDirectoryOfFile(img.src); +} +return url; + } + +// === Various methods to try finding the base = + function tryMetaTag() { +var metaVal = __gwt_getMetaProperty('baseUrl'); +if (metaVal != null) { + return metaVal; +} +return ''; + } + + function tryNocacheJsTag() { +// By default, this script looks like something/moduleName.nocache.js +// so look for a script tag that looks like that +var scriptTags = $doc.getElementsByTagName('script'); +for (var i = 0; i scriptTags.length; ++i) { + if (scriptTags[i].src.indexOf('__MODULE_NAME__.nocache.js') != -1) { +return getDirectoryOfFile(scriptTags[i].src); + } +} +return ''; + } + + function tryMarkerScript() { +// If the user renamed their script tag, we'll use a fancier method to find +// it. Note that this will not work in the Late Loading case due to the +// document.write call. +var thisScript; +if (typeof isBodyLoaded == 'undefined' || !isBodyLoaded()) { + // Put in a marker script element which should be the first script tag after + // the tag we're looking for. To find it, we start at the marker and walk + // backwards until we find a script. + var markerId = __gwt_marker___MODULE_NAME__; + var markerScript; + $doc.write('script id=' + markerId + '/script'); + markerScript = $doc.getElementById(markerId); + thisScript = markerScript markerScript.previousSibling; + while (thisScript thisScript.tagName != 'SCRIPT') { +thisScript = thisScript.previousSibling; + } + if (markerScript) { +
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
LGTM Sorry for the belated review. This is a great sample, we'll get a lot of mileage out of it. My only complaint is that the clientFactory has too many getters and is passed around too much. I'll take a crack at fixing that myself. The app also doesn't use the Editor framework like it should. John L is supposed to be on the hook for that, but I wonder if Rodrigo should go ahead and do it instead, just as an excuse to get familiar with editors. http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10046 committed - Replace HeaderPanel's custom iterator with a new package protected Fin...
Revision: 10046 Author: gwt.mirror...@gmail.com Date: Wed Apr 20 14:52:56 2011 Log: Replace HeaderPanel's custom iterator with a new package protected FiniteWidgetIterator that iterates over children in a WidgetProvider. FiniteWidgetIterator is a generic iterator over a finite set of child widgets (versus WidgetIterator, which iterators over panel of arbitrary size). I intended to use FiniteWidgetIterator in another change then ended up not needing it, but I'm sure it will come in handy for other widgets. Review at http://gwt-code-reviews.appspot.com/1420807 Review by: rj...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10046 Added: /trunk/user/src/com/google/gwt/user/client/ui/FiniteWidgetIterator.java /trunk/user/test/com/google/gwt/user/client/ui/FiniteWidgetIteratorTest.java Modified: /trunk/user/src/com/google/gwt/user/client/ui/HeaderPanel.java /trunk/user/test/com/google/gwt/user/UISuite.java === --- /dev/null +++ /trunk/user/src/com/google/gwt/user/client/ui/FiniteWidgetIterator.java Wed Apr 20 14:52:56 2011 @@ -0,0 +1,93 @@ +/* + * Copyright 2011 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 com.google.gwt.user.client.ui; + +import java.util.Iterator; +import java.util.NoSuchElementException; + +/** + * Iterator over a finite number of widgets, which are stored in a delegate + * class (usually a widget panel). + * + * p + * In order to use this class, assign each widget in the panel an arbitrary + * index. For example, {@link HeaderPanel} defines the header as index 0, the + * content as index 1, and the footer as index 2. Construct a new + * {@link FiniteWidgetIterator} with a {@link WidgetProvider} that provides the + * child widgets. + */ +class FiniteWidgetIterator implements IteratorWidget { + + /** + * Provides widgets to the iterator. + */ + public static interface WidgetProvider { +IsWidget get(int index); + } + + private int index = -1; + private final WidgetProvider provider; + private final int widgetCount; + + /** + * Construct a new {@link FiniteWidgetIterator}. + * + * p + * The widget count is the number of child widgets that the panel supports, + * regardless of whether or not they are set. + * + * @param provider the widget provider + * @param widgetCount the finite number of widgets that can be provided + */ + public FiniteWidgetIterator(WidgetProvider provider, int widgetCount) { +this.provider = provider; +this.widgetCount = widgetCount; + } + + public boolean hasNext() { +// Iterate over the remaining widgets until we find one. +for (int i = index + 1; i widgetCount; i++) { + IsWidget w = provider.get(i); + if (w != null) { +return true; + } +} +return false; + } + + public Widget next() { +// Iterate over the remaining widgets until we find one. +for (int i = index + 1; i widgetCount; i++) { + index = i; + IsWidget w = provider.get(i); + if (w != null) { +return w.asWidget(); + } +} +throw new NoSuchElementException(); + } + + public void remove() { +if (index 0 || index = widgetCount) { + throw new IllegalStateException(); +} +IsWidget w = provider.get(index); +if (w == null) { + throw new IllegalStateException(Widget was already removed.); +} +w.asWidget().removeFromParent(); + } +} === --- /dev/null +++ /trunk/user/test/com/google/gwt/user/client/ui/FiniteWidgetIteratorTest.java Wed Apr 20 11:47:50 2011 @@ -0,0 +1,199 @@ +/* + * Copyright 2011 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 com.google.gwt.user.client.ui; + +import com.google.gwt.junit.client.GWTTestCase; +import com.google.gwt.user.client.ui.FiniteWidgetIterator.WidgetProvider; + +import java.util.HashMap;
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
If Rodrigo has time to add Editors, its likely to get done sooner than I can get to it. As far as ClientFactory, should we consider using gin? On 2011/04/20 21:51:42, rjrjr wrote: LGTM Sorry for the belated review. This is a great sample, we'll get a lot of mileage out of it. My only complaint is that the clientFactory has too many getters and is passed around too much. I'll take a crack at fixing that myself. The app also doesn't use the Editor framework like it should. John L is supposed to be on the hook for that, but I wonder if Rodrigo should go ahead and do it instead, just as an excuse to get familiar with editors. http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: MobileWebApp sample. Showcases GWT providing a single app providing specialized views for Deskto... (issue1427803)
Re: gin, the dependencies will be too complicated for a sample. And this is simple enough that we can just do what gin would have done by hand, makes it a better illustration really. On Wed, Apr 20, 2011 at 3:03 PM, jlaba...@google.com wrote: If Rodrigo has time to add Editors, its likely to get done sooner than I can get to it. As far as ClientFactory, should we consider using gin? On 2011/04/20 21:51:42, rjrjr wrote: LGTM Sorry for the belated review. This is a great sample, we'll get a lot of mileage out of it. My only complaint is that the clientFactory has too many getters and is passed around too much. I'll take a crack at fixing that myself. The app also doesn't use the Editor framework like it should. John L is supposed to be on the hook for that, but I wonder if Rodrigo should go ahead and do it instead, just as an excuse to get familiar with editors. http://gwt-code-reviews.appspot.com/1427803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Replace HeaderPanel's custom iterator with a new package protected FiniteWidgetIterator that ite... (issue1420807)
committed as r10046 http://gwt-code-reviews.appspot.com/1420807/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10047 committed - Test that references to PredefinedFormat values work with DateLabel...
Revision: 10047 Author: rj...@google.com Date: Wed Apr 20 12:03:38 2011 Log: Test that references to PredefinedFormat values work with DateLabel Review at http://gwt-code-reviews.appspot.com/1427805 Review by: j...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10047 Modified: /trunk/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml === --- /trunk/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java Fri Apr 1 10:25:12 2011 +++ /trunk/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java Wed Apr 20 12:03:38 2011 @@ -49,7 +49,6 @@ public class UiBinderTest extends GWTTestCase { private WidgetBasedUi widgetUi; private DomBasedUi domUi; - @SuppressWarnings(deprecation) private com.google.gwt.user.client.ui.DockPanel root; @Override @@ -168,7 +167,6 @@ widgetUi.bundledDivLegacy.getClassName()); } - @SuppressWarnings(deprecation) public void testCenter() { // TODO(rjrjr) More of a test of HTMLPanelParser @@ -380,7 +378,6 @@ assertTrue(innerHTML.endsWith(/spannbsp;\u261C)); } - @SuppressWarnings(deprecation) public void testNorth() { Widget north = root.getWidget(0); assertEquals(com.google.gwt.user.client.ui.DockPanel.NORTH, @@ -491,6 +488,10 @@ public void testDateLabel() { DateLabel p = widgetUi.myDateLabel; assertNotNull(DateLabel exists, p); +p = widgetUi.myDateLabel2; +assertNotNull(DateLabel exists, p); +p = widgetUi.myDateLabel3; +assertNotNull(DateLabel exists, p); } public void testNumberLabel() { @@ -515,7 +516,6 @@ assertEquals(100%, root.getElement().getStyle().getProperty(width)); } - @SuppressWarnings(deprecation) public void testWest() { Widget west = root.getWidget(1); assertEquals(com.google.gwt.user.client.ui.DockPanel.WEST, === --- /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java Fri Apr 1 10:25:12 2011 +++ /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java Wed Apr 20 12:03:38 2011 @@ -191,9 +191,10 @@ @UiField NamedFrame myNamedFrame; @UiField DateLabel myDateLabel; @UiField DateLabel myDateLabel2; + @UiField DateLabel myDateLabel3; @UiField NumberLabelFloat myNumberLabel; @UiField NumberLabelFloat myNumberLabel2; - @UiField(provided = true) @SuppressWarnings(unchecked) + @UiField(provided = true) @SuppressWarnings(rawtypes) Renderer doubleRenderer = DoubleRenderer.instance(); @UiField ValueLabelDouble myValueLabel; @UiField ImageElement myImage; === --- /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml Sun Apr 3 21:22:18 2011 +++ /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml Wed Apr 20 12:03:38 2011 @@ -94,6 +94,10 @@ Tests a DateTimeFormat using for the DateTimeLabel. /ui:import +ui:import field='com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat.ISO_8601' + Tests a reference to a PredefinedFormat for the DateTimeLabel. +/ui:import + ui:import field='com.google.gwt.uibinder.test.client.WidgetBasedUi.MY_NUMBER_FORMAT' Tests a NumberFormat using for the NumberLabel. /ui:import @@ -665,6 +669,7 @@ gwt:DateLabel ui:field='myDateLabel' predefinedFormat='DATE_FULL' / gwt:DateLabel ui:field='myDateLabel2' format='{MY_DATE_FORMAT}' / + gwt:DateLabel ui:field='myDateLabel3' predefinedFormat='{ISO_8601}' / gwt:NumberLabel ui:field='myNumberLabel' predefinedFormat='SCIENTIFIC' / gwt2:ui.NumberLabel ui:field='myNumberLabel2' format='{MY_NUMBER_FORMAT}' / -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10048 committed - Tighten sanity checks on BigDecimal(String value) so that it doesn't a...
Revision: 10048 Author: hhc...@google.com Date: Wed Apr 20 12:13:58 2011 Log: Tighten sanity checks on BigDecimal(String value) so that it doesn't accept strings with 2 signs. Review at http://gwt-code-reviews.appspot.com/1424806 Review by: j...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10048 Modified: /trunk/user/super/com/google/gwt/emul/java/math/BigDecimal.java /trunk/user/test/com/google/gwt/emultest/java/math/BigDecimalConstructorsTest.java === --- /trunk/user/super/com/google/gwt/emul/java/math/BigDecimal.java Fri Dec 10 11:30:52 2010 +++ /trunk/user/super/com/google/gwt/emul/java/math/BigDecimal.java Wed Apr 20 12:13:58 2011 @@ -2608,6 +2608,12 @@ if ((offset last) (val.charAt(offset) == '+')) { offset++; begin++; + + // Fail if the next character is another sign. + if ((offset last) + (val.charAt(offset) == '+' || val.charAt(offset) == '-')) { +throw new NumberFormatException(For input string: \ + val + \); + } } int counter = 0; boolean wasNonZero = false; === --- /trunk/user/test/com/google/gwt/emultest/java/math/BigDecimalConstructorsTest.java Fri Dec 10 11:30:52 2010 +++ /trunk/user/test/com/google/gwt/emultest/java/math/BigDecimalConstructorsTest.java Wed Apr 20 12:13:58 2011 @@ -512,6 +512,30 @@ e.getMessage()); } } + + /** + * new BigDecimal(String value) when value has multiple signs. + */ + public void testConstrStringMultipleSignsStartWithPlus() { +String a = +-3; +try { + new BigDecimal(a); + fail(NumberFormatException expected); +} catch (NumberFormatException expected) { +} + } + + /** + * new BigDecimal(String value) when value has multiple signs. + */ + public void testConstrStringMultipleSignsStartWithMinus() { +String a = -+3; +try { + new BigDecimal(a); + fail(NumberFormatException expected); +} catch (NumberFormatException expected) { +} + } /** * new BigDecimal(String value, MathContext). -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Test that references to PredefinedFormat values work with DateLabel (issue1427805)
r10047 http://gwt-code-reviews.appspot.com/1427805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Structural changes to UiBinder to make fields accessible via getters (issue1420804)
http://gwt-code-reviews.appspot.com/1420804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Move single jso logic from BasicWebModeCompiler to JavaToJavaScriptCompiler. (issue1428802)
Reviewers: bobv, Message: GwtAstBuilder stitching needs this. Please review this at http://gwt-code-reviews.appspot.com/1428802/ Affected files: M dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java M dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java Index: dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java diff --git a/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java b/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java index d20bc5f258b9e5c727316c5f06c5b5ca45e37fd0..7403f20bf49e0b7f36d5c690932795feb27287f0 100644 --- a/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java +++ b/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java @@ -17,8 +17,6 @@ package com.google.gwt.dev.jdt; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.core.ext.UnableToCompleteException; -import com.google.gwt.core.ext.typeinfo.JClassType; -import com.google.gwt.core.ext.typeinfo.TypeOracle; import com.google.gwt.dev.javac.CompilationState; import com.google.gwt.dev.javac.CompilationUnit; import com.google.gwt.dev.javac.CompiledClass; @@ -68,8 +66,6 @@ public class BasicWebModeCompiler extends AbstractCompiler { TreeLogger logger, String[] seedTypeNames, ICompilationUnit... additionalUnits) throws UnableToCompleteException { -TypeOracle oracle = compilationState.getTypeOracle(); -Set? extends JClassType intfTypes = oracle.getSingleJsoImplInterfaces(); MapString, CompiledClass classMapBySource = compilationState.getClassFileMapBySource(); /* @@ -80,8 +76,8 @@ public class BasicWebModeCompiler extends AbstractCompiler { */ SetCompilationUnit alreadyAdded = new HashSetCompilationUnit(); -ListICompilationUnit icus = new ArrayListICompilationUnit( -seedTypeNames.length + intfTypes.size() + additionalUnits.length); +ListICompilationUnit icus = +new ArrayListICompilationUnit(seedTypeNames.length + additionalUnits.length); Collections.addAll(icus, additionalUnits); @@ -102,22 +98,6 @@ public class BasicWebModeCompiler extends AbstractCompiler { } /* - * Add all SingleJsoImpl types that we know about. It's likely that the - * concrete types are never explicitly referenced from the seed types. - */ -for (JClassType intf : intfTypes) { - String implName = oracle.getSingleJsoImpl(intf).getQualifiedSourceName(); - CompilationUnit unit = getUnitForType(logger, classMapBySource, implName); - - if (alreadyAdded.add(unit)) { -icus.add(new CompilationUnitAdapter(unit)); -logger.log(TreeLogger.SPAM, Forced compilation of unit ' -+ unit.getResourceLocation() -+ ' becasue it contains a SingleJsoImpl type); - } -} - -/* * Compile, which will pull in everything else via the * doFindAdditionalTypesUsingFoo() methods. */ Index: dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java diff --git a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java index ec645831f068e91b9d88d74f025950adf2ba3cd0..d96f1e2b295cd5ed1fb4dcb55f86247184415a40 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java +++ b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java @@ -42,6 +42,7 @@ import com.google.gwt.dev.cfg.ConfigurationProperty; import com.google.gwt.dev.cfg.ModuleDef; import com.google.gwt.dev.javac.CompilationProblemReporter; import com.google.gwt.dev.javac.CompilationProblemReporter.SourceFetcher; +import com.google.gwt.dev.javac.typemodel.TypeOracle; import com.google.gwt.dev.jdt.RebindPermutationOracle; import com.google.gwt.dev.jdt.WebModeCompilerFrontEnd; import com.google.gwt.dev.jjs.CorrelationFactory.DummyCorrelationFactory; @@ -512,6 +513,15 @@ public class JavaToJavaScriptCompiler { allRootTypes.addAll(JProgram.CODEGEN_TYPES_SET); allRootTypes.addAll(JProgram.INDEX_TYPES_SET); allRootTypes.add(FragmentLoaderCreator.ASYNC_FRAGMENT_LOADER); +/* + * Add all SingleJsoImpl types that we know about. It's likely that the + * concrete types are never explicitly referenced. + */ +TypeOracle typeOracle = rpo.getCompilationState().getTypeOracle(); +for (com.google.gwt.core.ext.typeinfo.JClassType singleJsoIntf : typeOracle +.getSingleJsoImplInterfaces()) { + allRootTypes.add(typeOracle.getSingleJsoImpl(singleJsoIntf).getQualifiedBinaryName()); +} Memory.maybeDumpMemory(CompStateBuilt); @@ -522,8 +532,7 @@ public class JavaToJavaScriptCompiler { ListString finalTypeOracleTypes = Lists.create(); if (precompilationMetrics != null) { - for (com.google.gwt.core.ext.typeinfo.JClassType type : rpo.getCompilationState() - .getTypeOracle().getTypes()) { + for (com.google.gwt.core.ext.typeinfo.JClassType
[gwt-contrib] Re: Structural changes to UiBinder to make fields accessible via getters (issue1420804)
Once again SQ passed with success and orkut seems ok. I'll take a deeper look at your doc today morning, looks promising... On Wed, Apr 20, 2011 at 8:14 PM, her...@google.com wrote: http://gwt-code-reviews.appspot.com/1420804/ -- --Hermes Freitas -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] IE9: DOM_EXCEPTION when creating Radio Button
All, while checking 2 of my GWT applications on IE9 i discovered they are no longer working. After recompiling with 2.2.0 (and 2.3.0m1) the problem is still there. Running the applications in IE9 compat mode manually (by pressing the button in the address bar) works fine, however, if i do the same using the meta tag the rendering switches to IE8 but the application still doesn't work. Running the application in dev-mode on IE9 shows the following: com.google.gwt.core.client.JavaScriptException: (null): DOM Exception: INVALID_CHARACTER_ERR (5) code: 5 ABORT_ERR: 20 ... VALIDATION_ERR: 16 WRONG_DOCUMENT_ERR: 4 at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:237) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:129) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) at com.google.gwt.dom.client.DOMImplTrident.createInputRadioElement(DOMImplTrident.java) at com.google.gwt.dom.client.Document$.createRadioInputElement$(Document.java:961) at com.google.gwt.user.client.DOM.createInputRadio(DOM.java:214) ... Application A crashes on creating a Radio Button, Application B crashes on creating a regular button. But applications are very different, A uses an external library GWT-EXT, however Application B does not use any libraries at all (other than GWT itself) When searching for the error a few suggestions are given in early 2010 but none of them work. After doing a complete reinstall of eclipse and a fresh check out of the source I actually have no idea how to debug this further. Has anyone seen this? Any hints on debugging? -- Michel -- http://groups.google.com/group/Google-Web-Toolkit-Contributors