If you can funnel your remote calls through a single remote implementation
(.ie you can have your async interfaces extend from a common abstract
class), you can throw an authentication exception when the user's
credentials have expired, catch it client side and toss up a login dialog
over top
On Friday, June 6, 2014 5:19:26 AM UTC-5, stuckagain wrote:
It looks to me that you need to store this as a preference in the database
for that particular screen instead of jamming it in the URL.
You could put it in a cookie if you don't want to put it in the database.
I'm assuming that
You really need indicate the manner in which you're calculating the
tomorrow date before anyone can actually do much other than speculate to
help you here.
I would imagine you should be able to determine what the code is doing
differently just by stepping through your code in the browser's
Not really, any implementation is going to be highly dependant on how your
backend environment is set up and what projects you can or cannot
incorporate.
Here's a decent explanation of how you generally want to approach a
situation like this though.
If you're still looking to hook into your web application's start/stop
lifecycle, you can use a ServletContextListener to do so.
On Wednesday, June 26, 2013 10:44:15 AM UTC-5, Magallo wrote:
Ok, it works! Thanks!
My mistake was to think that the sessionCreated event was created when the
It's because the browser is closing the connection, that's what the wrapped
exception means. The user is either hitting the stop button or navigating
away or the file you're writing is taking way too long to write out and the
browser (or a proxy along the way) is closing out the socket before
Look at the ThreadLocal source and you'll see it stores all your
ThreadLocal objects in what basically amounts to hash map of weak
references. The reason set(null) is called is that since it's assumed that
Servlet instances/threads are being re-used to handle incoming requests,
since that's
To handle this in Tomcat, I wrote a little servlet filter that basically
uses a request wrapper to re-write the request, pointing it to the
precompressed .gz version of the files if the request has a gzip
Accept-Encoding header before forwarding it through the filter chain. Then
changed the
Sorry, i'm away from my workspace for several days. Just read up on the Sevlet
Filter interface and use your web.xml to associate it with requests for your
nocache files. In the filter's doFilter method essentially all you'll do is
call getSession to ensure a session is created and then pass
If you are serving your nocache files with your app server you could make a
simple http filter, associate it with nocache requests and establish a session
in the filter's service method. That way you know for certain you always have
a session when your host page loads. Since you have access
I'd suggest reading the stuff in What's with all the cache/nocache stuff
and weird filenames? about the bootstrap process.
https://developers.google.com/web-toolkit/doc/2.4/FAQ_DebuggingAndCompiling
On Tuesday, July 3, 2012 8:03:17 AM UTC-4, regnoult axel wrote:
Hello,
I am living in
I send the exact same headers - though I let Tomcat's default servlet
handle the Date one, and I just hardcode the Expires header to Thu, 01
Jan 1970 00:00:00 GMT. I am running on Tomcat 6 and not Glassfish, but I
have not encountered the issue you're seeing.
This may help, here's my server's
I would probably have the frame page itself be a simple entry point and
just have it keep requesting your updated HTML content via an RPC and
update your frame's innerHTML to set the content to the HTML returned by
the call, you can probably even get it set to only return the next chunk
of
Yes, that would be exactly how you'd do it. There's really not much to
actually implement. All of the handler methods are just simple variants of
addHandler, so you really end up with having to actually write are the
get/set HTML/Text methods.
On Friday, June 1, 2012 5:05:40 AM UTC-4,
Where it was a pain in the past to do this, it's actually pretty
straightforward now. Just extend DialogBox and provide your own Caption
implementation in your constructor's super call. Our Caption is just a
simple 2 column Grid extension with an X Image in the right column.
--
You received
What I do is add a mouse out/over handler to both the image and popup panel.
The mouse out handlers kick off timers that after, say, .25 seconds close
the popup if it's open. The mouse over handler on the popup cancels any
close timers running and the mouse over handler on the image does the
, 2012 at 3:48 PM, jhulford wrote:
First, the widgets look fantastic. Great job there.
My issue would be w/ keying time into the time pickers. It's a little
wonky, in that, you can't click into the textfield and just key 17:45.
You have to make sure to click the cursor after the hour
First, the widgets look fantastic. Great job there.
My issue would be w/ keying time into the time pickers. It's a little
wonky, in that, you can't click into the textfield and just key 17:45.
You have to make sure to click the cursor after the hour, then type 17 and
the click the mouse
Chrome Frame shouldn't even be reporting itself in the user agent string if
it's disabled.
See here...http://code.google.com/p/google-web-toolkit/issues/detail?id=6665
I believe you could actually override the standard user agent property
selector with your own and make it not look for chrome
Setting the session as a static member variable is going to cause you
all sorts of concurrency problems, even if it was a non-static member
you'll have the same issues since the same servlet is used to service
every HTTP request. There's really no reason for it.
If your server side is java,
I don't think setSize is really supported for the content area of the
DialogBox since setSize is inherited from UIObject. I believe the
size you're setting is the actual dialog box's outer dimensions (ie.
the DecoratorPanel's table) and not your content's dimensions.
What you'll really want to
No, you'll want your parse method to handle the two digit year by
detecting that the user keyed that and then just returning a Date
object that has the valid years in it.
On Feb 8, 6:23 am, Appien appienvanv...@gmail.com wrote:
HI Jhulford,
I dont get it. What should my parse method do if I
You can pass in your own Format implementation when creating your
DateBox and you'll have total control how the text value input from
from the user is parsed into a Date object.
On Feb 7, 1:51 am, Appien appienvanv...@gmail.com wrote:
Hi folks,
Currently I'm struggling the DateBox widget of
If you're using Tomcat, Tomcat 7 supports updating a webapp and
keeping the old instance running along side it for situations like
this. As I understand it (I don't use it yet), http sessions/requests
tied to the old webapp get routed to the old instance and new sessions
get routed to the newly
Are you using any DeferredCommands that would result in your widget's
content not being able to be determined when it's outer container is
actually added to the DOM? It really sounds like your widget
initially doesn't have any real content at the point when show() is
being called and is actually
If you don't actually need to use appengine on your server side, then
disable it in your project settings and then you can use FileWriter.
Otherwise, you can't use it in appengine - you are not allowed
filesystem access when running on it (here's the app engine whitelist:
If your servlet is extending the RemoteServiceServlet from the GWT
code (as it appears you're doing based on the error), then the only
data format that can be parsed from a client request is the GWT-RPC
one.
If you want to do xml-rpc, you'll need to write your own backend to
support that, or find
You can put your whole page in a hidden div and then when the module
is loaded show the page.
On Oct 11, 2:27 pm, Raymond Cidad raym...@globalsolutioncorp.com
wrote:
Hello my friends.
I'm trying to find the way to show a progress bar (like gmail), so when a
browser try to access the service,
UIObject#toString() is for debugging purposes only. None of the event
listeners you've set up are included in that output.
The short of it is, you can't do what you're trying to do with the
stock MenuBar / MenuItem class. I haven't done this myself, but I'm
pretty sure you could extend MenuItem
You need to expound on what your issue is. when IE8 uploads, the
onSubmitComplete fires and regardless of what I do IE hangs up isn't
very descriptive of what problem you're actually encountering.
On Oct 5, 3:49 pm, GeorgeS sxoutt...@gmail.com wrote:
So is this a known issue or just something
They must be looking in a round about way for one of the googlers who
initially developed the project. It couldn't be that he's posting
nonsensical job requirements to the actual GWT group, who'd be ill
informed enough to do that?
On Sep 25, 8:36 am, Alvin Reyes alvin.jay.p.re...@gmail.com
I'm assuming you just want to have the browser handle this, right? If
so, you need to make sure the Text and Password input boxes are part
of your host page. IE won't store off the information if you add them
after the page is loaded.
Mouse events are not fired on Option elements in IE. I'm not sure
there's even a workaround either if you need to use a Select box.
http://stackoverflow.com/questions/2064011/select-option-hover-is-not-working-in-ie
On Aug 4, 4:58 am, Ash ashly@gmail.com wrote:
Guyzz any help??
We show a wait dialog, then send an RPC telling the server to kick
off a backend process (ie. zip up the files), the RPC returns an
identifier (a UUID) to the caller, the caller then polls every so
often sending that UUID to identify which service it's asking about to
get an update on whether the
I had the same issue and ended up having to write some JSNI to query
the frame's readyState every X milliseconds for IE (load event wasn't
firing consistently). It's pretty straightforward to do, but I don't
have the code any more because there were just too many other IE
issues with the iframe
You can tell the compiler not to obfuscate the CSS class names in your
module's config file.
Add the following to your module.gwt.xml file:
set-configuration-property name=CssResource.style value=pretty/
On Jul 20, 2:38 am, Ionuț G. Stan ionut.g.s...@gmail.com wrote:
How do you guys debug CSS
To fire a close event on a widget, you can use the static method in
CloseEvent: CloseEvent.fire(myDisclosurePanelSource,
myDisclosurePanelSource);
However, that's not going to animate the closing...the event firing
just notifies any external handlers that the panel has closed.
Are you sure you
Presumably you're using Internet Explorer...which has issues showing
HTML elements over other objects on the page that are rendered
natively by the OS (iframes, flash, select boxes, etc).
To get around this limitation, GWT utilizes a hack where you put an
iframe shim behind the popup panel's
I think you're on a bit of a fools errand here and doing something
that's going to greatly annoy the users of your site - especially now
that tabbed browsing is ubiquitous. I'd definitely not use your site
if you broke links to external pages like that for me.
On Jul 4, 9:50 pm, Oscar
You should be able to add a click handler to the anchor and call
preventDefault() on the ClickEvent passed to it to prevent the default
page opening action of the anchor tag.
On Jun 30, 5:28 pm, Oscar o.bar...@gmail.com wrote:
Hi jhulford,
Thanks for your answer!
What you say works great
Check out this page, making sure your module's gwt.xml file has the
correct XML inherits:
http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsXML.html
Also, note that for the parse method, the string you pass in there
needs to be the actual XML document, not a path to its location.
I think you may be able to put an iframe (gwt Frame) inside a
DialogBox and have that work, I haven't done this myself but in theory
I think it should work.
On Jun 29, 12:05 pm, Oscar o.bar...@gmail.com wrote:
Hi all,
I'm new at GWT and I'm trying to create a dialogbox that shows a
website
You can't do either of those things at this time and won't be able to
for the foreseeable future - likely not ever. Javascript can only
make HTTP requests. About the best you could do is write some
servlet / server side code to proxy the HTTP calls and forward them to
your actual FTP server.
You can add a setter method in your request oracle to set it, write a
wrapper for your own suggest box class, etc... There's any number of
valid ways.
On May 28, 1:51 pm, Ilya Ilievski ilija...@gmail.com wrote:
Actually I already have defined custom SuggestOracle, but how can I access
the
Not that I know of by default, but you can pretty easily define your
own SuggestOracle (either by implementing your own or extending the
default MultiWord one) and override the requestSuggestions method to
shows the loading gif when invoked and then wrap the Callback passed
into that with your own
I can't help you, but you may get better luck posting this into the
Chrome Frame group.
On May 23, 2:39 am, JC realje...@gmail.com wrote:
Anybody home?
Or maybe that someone could explain me why I don't have any trouble
with Chrome but I have with IE8 with the Google Chrome Frame
activated.
This all looks pretty fantasic, nice work.
You might want to check that example, though. I'm not sure why, but
the Export Grid to PDF button doesn't do anything when I click it in
Firefox 3.6.17 w/ the Acrobat plugin.
On May 19, 11:12 am, Alain Ekambi jazzmatad...@googlemail.com wrote:
Here is
Use a Window ResizeHandle and reposition your dialog when the window
is resized.
On May 2, 9:16 am, newbee gandhamsat...@gmail.com wrote:
Hi All,
I am using popups in my application and I am positioning them at
absolute left and right of some other widget. Now the problem is that
when i
being called from (and meant to overlay) a page that has nothing to do
withGWT??? Thanks so much.
On Apr 26, 9:13 am, jhulford jhulf...@gmail.com wrote:
See the PopupPanel or DialogBox class...that should allow you to do
exactly what you want.
InGWTterms your standard page will be acting
See the PopupPanel or DialogBox class...that should allow you to do
exactly what you want.
In GWT terms your standard page will be acting as the host page for
your GWT popup stuff you plan on displaying. Your use case fits in
with all the tutorials of how to get up an going in GWT. You're just
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
On Apr 4, 8:56 am, pansen andi.ba...@googlemail.com wrote:
Hi,
Now we prevent anybody to steal our sessions, but we are also unable
to use
the sessionid as CSRF protection. Therefore its necessary to use a
different
token for this kind of protection. We call it ``X-Request-Token``,
which
I'm not familiar w/ a jetty setup, so I suppose you could have done
something in your global configurations, but you have no servlet-
mapping set up in the web.xml to handle the base URI for your web app
(which is presumably deployed to the proxytest path?). The
DefaultServlet is then what will
On Mar 7, 5:32 pm, JP seri...@gmail.com wrote:
Fifth, ties with the fourth and is the obvious implementation of
IsSerializable for RPC. Like so:
public class GameData implements IsSerializable {
You shouldn't need to use IsSerializable. Plain old
java.io.Serializable will work fine and keep
I'll admit to knowing nothing about canvas work, but is it possible
you have to wait for the image to load using a LoadHandler before you
can display it in the Canvas?
On Feb 6, 10:46 am, Jambi michael.lukaszc...@googlemail.com wrote:
Hej Thomas,
it´s the same with your solution. The Image
On Jan 18, 3:26 pm, Noor baken...@gmail.com wrote:
2. The developer does not have to be a guru in browser
incompatibilities
to develop web sites which works on
a variety of browsers because
incompatibilities are handled by GWT
through differed bindind
While GWT does shield you from some
Without writing your own serialization classes, you can't while using
a Date object because the Date object actually represents an exact
moment in time and not a full day / block on a calendar. Search this
group for a plethera of answers about this:
The easiest way is to create a DTO date object
We do #2. We have a custom label class that cuts out after a
predefined character count or width. If the text is longer than the
defined width we add a clickable '...' at the end of the label When
the user clicks that we show the full text in a popup window below the
original label. There's
If you're not using Google App Engine (and I'm not sure why you would
be if you're using Mysql as your datastore), then remove it from your
project's setup. The enhanced Security Manager settings that comes w/
using GAE is what's causing your error.
Right click on you project's icon, choose
that generates the main gui on top of the empty host
page.
Magnus
private void initDisplay () // called from within onModuleLoad
{
DockLayoutPanel display = new DockLayoutPanel (...);
...
RootLayoutPanel.get().add(display);
}
--
On Dec 30, 5:41 pm, jhulford jhulf...@gmail.com wrote
You can store off the user's chosen locale into a database of some
sort and then when your host page is being written after the user logs
in (like w/ jsp or php or something) load the users language
preference and set it via the meta tag.
The only time you'd need to reload the app then is on that
This message is several days old, but I just ran into this too and
wanted to avoid having to update my host pages w/ the meta tags since
I'm only using the one locale as well.
To do this, add the following to your module's config file (.gwt.xml):
inherits name=com.google.gwt.i18n.I18N/
the id to the
cancel method and the backend handles canceling out the process.
On Dec 7, 12:20 pm, newnoise tommmuel...@googlemail.com wrote:
Ok. Too bad ...
Is there any way to abort the running method on my server?
Thanks
Tom
On 7 Dez., 16:54, jhulford jhulf...@gmail.com wrote:
All calling
All calling it does is call the abort() method of XmlHttpRequest which
will stop the execution of your callback, it doesn't do anything on
your server.
Check the Request.cancel() code..it's pretty straightforward.
On Dec 7, 7:01 am, newnoise tommmuel...@googlemail.com wrote:
Does really no one
HerrB, if you're using a DateBox you can pretty easily get the
behavior you're after by providing your own implementation of the
DateBox.Format interface to the DateBox constructor. Your
implementation can pretty much just be a simple wrapper around the
Default one that adjusts the century to be
There's probably something that's not getting pruned by the compiler
(dead code eliminated) that was before as a result of modifications
you had to make to use 2.1 or perhaps a difference in the compiler in
2.1.
I'd use the Story of Your Compile (SOYC) output to check and see
what's getting
I'm probably missing something, but how is this different than using
the CssResource.style property in your module's XML and setting the
value to pretty? Doing that results in disabling the class name
obfuscation.
You can also use the @External annotation on individual css classes to
do the same
You can't do what you're asking. A widget instance can only be added
to a single parent container.
The code you posted looks ok though, so I'm guessing you probably have
a typo in your real code where you're trying to add the same instance
of FirstClass to elementA and elementB, which will cause
It's probably too late now since you wrote this 2 days ago, but a tool
like recuva can help to restore files you've deleted.
http://www.snapfiles.com/get/recuva.html
On Nov 20, 3:02 pm, Bryan Donnovan bryandonno...@gmail.com wrote:
I'm using eclipse helios and the GWT 2.1 plugin. My app was
You're not using a valid array constructor...To do so would look
something like this:
SuggestBox[] countries = new SuggestBox[]{new
SuggestBox(countryOracle)};
However that just creates an array w/ a single SuggestBox in it.
Since you indicate the
user will potentially want to add an unknown
I'm doing something nearly identical and it seems to be working well.
You don't need to use external for everything..you can turn off css
class name obfuscation by using the configuration property
CssResource.style and setting it to pretty in your module xml and
that will do the same exact thing.
It's actually really quite easy. You just need to create your own
SuggestOracle that overrides the requestSuggestions method and
executes some sort of code to contact your server/database to do the
search (GWT-RPC, REST, simple GET request, etc..) then utilizes the
Callback's onSuggestionsReady
On Oct 8, 12:58 pm, Thomas Broyer t.bro...@gmail.com wrote:
On 8 oct, 15:57, jhulford jhulf...@gmail.com wrote:
There's nothing that should be preventing it from working
Well, except the browser itself!
AFAIK, Firefox at least won't let you open file: links from an http:
page.
D'oh
Are you still using the provided GreetingServiceImpl on server side
that expects a GWT RPC call?
Because the way you're setting this up is not sending a GWT RPC
request, you're just get/put/post'ing that plaintext
request. It's perfectly valid to do that, but if your GreetingService
servlet is
There's nothing that should be preventing it from working (assuming
file:/// is a typo and you meant file://path/to/file.txt). Make
sure you check the path you're using (try using the absolute path of
the file as a debugging measure).
Is there a reason you're using straight HTML and not using
On Oct 5, 10:35 am, Thomas Broyer t.bro...@gmail.com wrote:
Bug bug bug!
Google for gzip js ie6
One of the
results:http://sebduggan.com/posts/ie6-gzip-bug-solved-using-isapi-rewrite
Argh!! IE 6..just die already!
Thanks, Thomas. I had a feeling that was likely the case, but I
didn't find
They already have addressed it:
http://code.google.com/p/google-web-toolkit/wiki/LightweightCollections
As far as I know, there's no set release for the code though.
On Sep 28, 9:55 am, Fernando spiderkens...@gmail.com wrote:
very interesting, even more if coupled with this one (read it
Sorry, what I meant was, projects developed at Google rarely utilize
Maven.
On Jul 4, 10:55 am, Mikael Couzic mikaelcou...@gmail.com wrote:
I'm pretty sure the GWT group is not providing them because very
few, if any, projects internally utilize maven.
I do not agree. I use Maven, I believe
Has anyone at Google/GWT ever indicated they'd support maven? I know
they've asked for feedback on how they could help make releases more
maven friendly in the past, but, I believe, it's always been entirely
up to the maven community at large to provide maven resources for
GWT. I'm pretty sure
The session interface has the method invalidate() in it to manually
force the session to expire. You can add some sort of filter in your
server side RPC processes that uses whatever heuristic you need to
determine when to time out the session and just do it manually.
On Jun 16, 8:34 am, Paul
Technically, the proper way according to the specs is to not utilize
background threads. Of course, since nobody actually obeys that
proclamation, use a ServletContextListener to start your Thread when
the servlet context is started and stop the thread when the context is
being destroyed. In
Aside from Sri's advice (which is what my application does), the only
way you'll be able to include more than 65536 rows in a single sheet
is to produce an xlsx (ie. OOXML) formatted Excel file. However, if
you do that, anyone using your application that doesn't have Excel
2007 or newer will have
Instead of using a cookie you can add JSESSIONID to your URL like -
http://my.server.com/page.jsp;jsessionid=session-id?param=value.
Your application server will probably still only pick up the cookie
value instead of the session id value from the URL. You will have to
disable cookie session ids
FYI...This won't work in IE6 and only in standards mode in IE 7+. If
that's acceptable, then this css is definitely the way to go.
On Apr 28, 4:15 am, Viliam Durina viliam.dur...@gmail.com wrote:
I had the same problem on capturing events on table cells, but to
change background as the mouse
John,
Generally there's a certain expected level of understanding when
posting into a technical forum like this, which is why people will
general preface a post with something like I'm a beginner and I have
some questions.. or something like that to indicate they're not at
that level. I'd really
If you're not actually deploying to the App Engine environment you can
remove the GAE class restrictions in the GWT plugin options and use
whatever classes you want.
On Mar 16, 10:09 pm, vegbenz veggieb...@gmail.com wrote:
So I discovered that I need to add any extra libraries into /war/WEB-
If you're not comfortable using UserAgent sniffing, you can pretty
easily override the default GWT user.agent property provider in your
module's xml file and return the same version strings however way you
want to determine them.
You'd do something like this:
property-provider
Regarding #2, If you set the Content-Disposition response header to
'attachment; filename=file.txt' then IE will show the download box
instead of trying to open the file in the browser.
On Jan 28, 5:33 pm, Thad thad.humphr...@gmail.com wrote:
Downloading a file is just a matter of shipping the
Can't you set up Apache directives to handle .php and .html files and
and forward your comet requests through the jk module to Tomcat? To
your browser it should all look like it's going to the same domain.
On Dec 15, 10:57 am, ben fenster fenster@gmail.com wrote:
i want to use apache to
You might be able to add a key listener to the scroll panel and use
scrollTop to have it progressively jump down the elements inside the
scrollpanel when the user hits down/up.
On Nov 24, 9:33 am, Bruce Petro brucepe...@gmail.com wrote:
I have a scroll panel that I fill with several lines of
Your DLL needs to go in one of the directories that are specified by
the 'java.library.path' system property, not in your classpath. The
classpath specifies the locations the jvm will look to load java
classes, not native code. I haven't really done any jni stuff in any
web applications I've
I would suggest using something like jsp / php / asp to generate your
GWT host page and have all the static content loaded directly into the
page during the initial user request along w/ the code to load up your
GWT module.
Or if you don't mind using bleeding edge code, you may want to take a
Also make sure your host page's encoding is UTF-8.
On Aug 28, 2:21 am, David david.no...@gmail.com wrote:
Hi,
That is not a GWT issue but rather a HTML issue.
Make sure that:
a) you use a font that supports i18n
b) make sure that you use a charset that supports i18n.
Put something
Otherwise, if you only really want to change the font and not bother
w/ copying the GWT css, just use the !important CSS declaration in
your host page:
body {
font-family: Times-New Roman !important;
}
In the interest of being overly pedantic, Times is a proprietary font
generally only found on
Also, use ProcessBuilder. You haven't really said what DOS command
you're trying to run but here's what you'd do to quietly delete (ie.
no prompts) all the files in some test directory.
ProcessBuilder b = new ProcessBuilder(cmd, /C, del, /Q, \\some
\\test\\directory);
//sets the working
Try TextBox.setVisibleLength()
On Aug 6, 1:59 pm, Tobe tobias.jungnic...@googlemail.com wrote:
Hi,
how do I set the size parameter of a HTML input element with
type=text for a TextBox in GWT?
--~--~-~--~~~---~--~~
You received this message because you are
Just use a standard link. If the content type header on the response
from the download page is set to something other than html/xml you'll
get the browser's file save/execute dialog and it won't navigate away
from the current page.
On Aug 5, 8:16 pm, Charlie codeboo...@gmail.com wrote:
Hello
Make sure you're compiling in OBF mode and are gzip'ing the cache
files too before sending to the browser. You'll also want to make
sure you're sending the correct cache response headers for those files
in order to instruct the browser that it doesn't need to redownload
the cache files every
I do development work all the time using GWT and a local server
without any internet access. My job had all internet traffic blocked
over the VPN I work over for the longest time too so I can pretty
definitively say that bog standard GWT RPC does not require any
internet access to function. I
6.x. Either way, the same problem
happens. The glassfish server is on port 8080 and the Tomcat server is
on port 80.
Thanks very much for your help, greatly appreciated.
On Aug 4, 10:01 am, jhulford jhulf...@gmail.com wrote:
I do development work all the time using GWT and a local server
1 - 100 of 119 matches
Mail list logo