Re: Best practice to implement Command Pattern RPC on server?

2009-06-30 Thread ClusterCougar

I thought I posted this last night, but I don't see it. Apologies if
this is a dupe.

I've tried to implement the command pattern using generics, but have
some hangups. You can see my code at

http://code.google.com/p/gwt-command-pattern/

Hangups:

1) Too many parameters. It's just not pretty
2) I have to parameterize the RPCServiceAsync at the class level,
whereas I would like to parameterize at the method level. This is a
constraint of the compiler.
3) All my server-side code actually resides on the client side,
because of the aggressive nature of the GWT compiler. I would add my
voice again asking for a simple annotation or annotations like

on a class: @GWTIgnoreReference(ServerSideClass.class)
and/or a method: @GWTIgnoreMethod

I think there are many justifiable use cases for this type of thing,
and I can't think of any way it would decrease user experience. Does
anyone know if this is a planned feature? Any comments/suggestions on
how to remediate the problems above that I don't know of? Ray Ryan,
are you listening?

Thanks,

On Jun 25, 4:07 pm, Eric erjab...@gmail.com wrote:
 On Jun 25, 5:12 pm, Herme Garcia hgar...@peoplecall.com wrote:

  Hi,

  After listening carefully Google IO's session from Ray Ryan about
  Best Practices For Architecting Your GWT App :

 http://code.google.com/intl/es-ES/events/io/sessions/GoogleWebToolkit...

  He suggests acommandpatternimplementation for RPC calling (see
  slides 21-25) they are using in Wave.

 Ray,

 If you're reading this, can you tell us if the full code for your
 contact
 manager is available anywhere?  Also, the second of the Contact
 DIsplay UI
 slides has the line

     currentContactId = currentContactId;
--~--~-~--~~~---~--~~
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 architecture MVP/EventBus (mentioned at Google I/O)

2009-06-30 Thread ClusterCougar

In my Display interface, I included a method like

Widget getWidgetView();

which (interestingly enough) returns a widget view of the display
object. this eliminates your casting problem, while still maintaining
a degree of anonymity for the Display interface.

On the command pattern thing, I created a project to work through what
I thought I was seeing. You can see it at

http://code.google.com/p/gwt-command-pattern/

Let me know if you have some suggestions on how to fix the issues I
describe there.

Thanks,

On Jun 29, 4:43 pm, Thomas Broyer t.bro...@gmail.com wrote:
 On 29 juin, 23:13, Daniel Jue teamp...@gmail.com wrote:





  Does anyone have a working MVP/Eventbus sample of something simple
  like the PhoneEditor?
  I don't think I'm doing it right.  The code from the IO presentation
  leaves out enough details so that I'm not sure what to do.
  For instance, in my Presenter.class,

  I have something like this:
  public class Presenter {
  ...
  private Display display;
          interface Display {
                  HasClickHandlers getSaveButton();
                  HasClickHandlers getCancelButton();
                  HasClickHandlers getNumberField();
                  HasClickHandlers getLabelPicker();
          }

 Slide 59 shows getNumberField and getLabelPicker as HasValueString,
 not HasClickHandler (and Ray says that ListBox doesn't actually
 implement HasValueString but it's quite easy to make a
 HasValueString for a ListBox).

          void editPhone(Phone phone) {
                  this.phone = Phone.from(phone);
                  display.getNumberField().setValue(phone.getNumber());
                  display.getLabelPicker().setValue(phone.getLabel());
          }
  ...}

  Obviously, a HasClickHandlers object doesn't have a setValue method.
  It doesn't feel like I should be casting to the widget here, since we
  went through all the trouble of using the Display interface.

 http://code.google.com/intl/fr-FR/events/io/sessions/GoogleWebToolkit...
--~--~-~--~~~---~--~~
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: Is this a possible in GWT?

2009-06-25 Thread ClusterCougar

Yes, it's possible, and even documented :)

http://code.google.com/webtoolkit/tutorials/1.6/JSON.html

On Jun 24, 5:57 am, Portal Developer portal.devel...@gmail.com
wrote:
 Apologies for posting this again, I posted this already but I don't
 see it appearing on the list, might be due to it being moderated.

 Hi,
 Is something like this possible in GWT?

 I have an existing portal written by myself in php which contains a
 huge amount of functionality that has been developed over the last few
 years.

 I would like to continue using this php functionality purely from the
 business logic and database point of view because I know that it works
 in php.
 The bit that I want to change is the user interface. I generate
 fragments of basic html in my php to display the relevant information
 but I would now like to view/create this information using GWT.  My
 php also creates some session variables when the user logs in.

 I know you can make calls to php scripts from GWT but how complex can
 this get?  Is it possible to call my php from GWT and instead of
 creating the visual element in php create the visual element in GWT
 instead.

 Does this make sense?  I would like to move to the GWT environment but
 without the overhead of having to rewrite the main functionality in my
 php.

 Any thoughts or ideas on how this might be achieved greatly
 appreciated.

 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: Class.newInstance and Class.cast

2009-06-24 Thread ClusterCougar

The reason this is a low priority for the GWT team is because
reflection goes against the spirit of GWT. It introduces a lot of
problems that are difficult to deal with in a fashion that would
result in speedy client-side code. My suggestion would be to work
around it, but if you would like help, you can post your code here and
I'll take a look at it.

On Apr 28, 4:03 am, andrej gab...@gmail.com wrote:
 Wrote the following code, and then realized that I can't translate
 this to javascript:

   public T extends Entity T create(ClassT type, long id) {
     T t = type.newInstance();
     t.setId(id);
     return type.cast(t);
   }

 Two problems:
 (1) Class.newInstance not implemented
 (2) Class.cast not implemented

 Class.cast should be easy to implement, since it's pretty much just an
 identity function. I.e.
 type.cast(t) -- t

 Class.newInstance() seems also relatively easy to implement. Just
 another prototype function to
 the class literal object?

 This is regarding the following 
 issue:http://code.google.com/p/google-web-toolkit/issues/detail?id=487can=...

 It's apparently low priority. But it seems it could be implemented
 easily. Am I wrong? Can I add this
 functionality myself? Any pointers? Unfortunately I'm just getting
 started with GWT, so I don't have
 a good understanding of how this works under the hood yet.

 Thank you
--~--~-~--~~~---~--~~
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: @DontCompileToJavaScript method annotation

2009-06-24 Thread ClusterCougar

+1 to the @JavaOnly annotation

On Jun 22, 4:57 pm, Tom Sorgie tom.sor...@gmail.com wrote:
 I've been thinking the same thing, but taking it from a reverse
 perspective.  In fact i just posted a question about being able to use
 the @GWTCompatible annotation to get reuse out of server code.  I
 didn't really connect that to the other side - which is writing code
 in your client that you only want available from the server - till i
 just read your post.  I guess in that circumstance you would be
 marking code (class, method, or var) written in the client package as
 @GWTIncompatible.  That would automatically remove it from the source
 tree before gwt-compilation.

 Good to see that someone else is hitting the same issue.

 tom.

 On Jun 22, 4:46 pm, Dave Ford df...@smart-soft.com wrote:



  Are there any plans for gwt to provide a method annotation that
  instructs the GWT compiler to *not* include that particular method in
  the generated JavaScript. Here is my justification for this feature.

  One of the appeals of GWT (for me) is that I have been able to achieve
  a decent amount of client/server code reuse. Specifically, i have a
  number of classes that I can use on both the server (in a jvm) and in
  the browser (in my gwt app). This is a huge benefit of GWT over, say,
  Flex or native JavaScript frameworks.

  I can't be the only one who appreciates this benefit. Here is an
  entire product to address this same concern (only 
  inverted):http://www.aptana.com/jaxer

  The problem is, creating java classes that run in the server and in
  client (gwt app) can lead to jumping thru lots of whoops and some
  major code refactoring. There are many times where it would be just so
  easy (if such a thing existed) to add an annotation to a method (or a
  class).
--~--~-~--~~~---~--~~
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 to retrieve EntryPoint object?

2009-06-20 Thread ClusterCougar

Not really. The EntryPoint class is not really a class, but a script
that is run to bootstrap your application. Any other use of the
EntryPoint is a little bit of an abuse of the concept. It is possible
to provide a global point of access to the EntryPoint using the
Singleton pattern, but global visibility is almost always a bad idea.

HTH
Nathan

On Jun 19, 10:56 am, hezjing hezj...@gmail.com wrote:
 Hi
 A quick question, is there a convenient method to retrieve EntryPoint
 object?

 --

 Hez
--~--~-~--~~~---~--~~
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: Common GWT Modules In JAR File Problems.

2009-06-16 Thread ClusterCougar

Some things I'm not clear on from your post:

1) Did you inherit the commons module in each of your *.gwt.xml files?
2) When you did the jar packaging, did you include the java source for
the client-side?
3) Are your public resources (i.e. CSS) located in a .../moduleName/
public/ folder? Were they included in the jar?
4) Was your commons.gwt.xml file included in the jar?

On Jun 15, 3:29 pm, gazarcher garry.arc...@gmail.com wrote:
 Hello All,

 I had a largish Web app with several GWT modules in different
 packages.  These modules shared common code which I put into a
 separate module, also in it's own package.  As simple as I can
 describe it, it looked a bit like this:

 // Modules specific to the app:

 MyPackage.MyApp.GWTModuleA
 MyPackage.MyApp.GWTModuleB
 MyPackage.MyApp.GWTModuleC

 // A common module that could be used in other apps:

 MyPackage.common.GWTModuleD

 // Common module containing code and resources used by any GWT module:

 MyPackage.common.gwt.Common

 Each of these modules contained their own module XML file (of course),
 CSS file, HTML file and images.  Each module, even the Common one, had
 it's own entry point.  Each module defined at least one servlet --
 which were all also configured in the app's web.xml file.

 The Common module included an entry for add-linker name=xs /.

 All of the modules, A through D, inherited the Common module.  For
 example, GWTModuleA could use styles defined in Common's common.css
 file, as well as inheriting widget classes.

 When I complied everything (using IntelliJ IDEA), the output from
 compiling normal Java source into class files and compiling GWT Java
 source into JavaScript all were put into one folder where a WAR file
 was also built.  The relevant folders in the output were:

 // Normal class files into the usual places:

 WEB-INF/classes/MyPackage.MyApp.SubPackageA/*.class
 WEB-INF/classes/MyPackage.MyApp.SubPackageB/*.class
 etc.

 // GWT JavaScript and resource files:

 MyPackage.MyApp.GWTModuleA/*.js
 MyPackage.MyApp.GWTModuleA/*.rpc
 MyPackage.MyApp.GWTModuleA/*.png
 MyPackage.MyApp.GWTModuleA/images/ -- From the Common module
 MyPackage.MyApp.GWTModuleA/common.css -- From the Common module
 MyPackage.MyApp.GWTModuleA/GWTModuleA.css
 MyPackage.MyApp.GWTModuleA/GWTModuleA.html

 (and similarly for modules B, C and D *and* Common)

 This all went together very nicely and worked and SO FAR SO GOOD!

 Then I proceeded to break it :-)

 I wanted to put my Common module into it's own JAR file so that my Web
 app and other Web apps we are developing could use it.  Here's what I
 did (amongst several things that didn't work, and trying to cut the
 long story short...):

 1) I created a new Common Intellij IDEA project and moved my common
 modules, MyPackage.common.GWTModuleD and MyPackage.common.gwt.Common,
 from my Web app project into it.

 2) In the Common project, I compiled everything.  The normal Java
 class files went into their respective folders, i.e.:

 // Regular Java classes:

 MyPackage/common/SubPackageA/*.class
 MyPackage/common/SubPackageB/*.class

 // GWT modules, their classes and resources, i.e., CSS, HTML, etc. and
 the module XML file:

 MyPackage.common.GWTModuleD/*
 MyPackage.common.gwt.Common/*

 and GWT's JavaScript output, all went into a separate folder (let's
 say I don't need this for now).

 NOTE: During the compilation of the GWT class files, I was *also*
 careful to copy their Java source files into the same folders (a
 requirement when building JAR files for shared GWT modules).

 3) I created a JAR file from the classes, sources and resource files
 in step #2.

 4) I imported this new JAR file into my original Web app project, now
 sans all the common code I moved into the new Common project.

 5) I successfully compiled my Web app project and deployed the
 resulting WAR file as before.

 The Web app appeared to work, *except* in my GWT modules, that used
 common code before, were all missing the styling and images from my
 Common module.  Also, the GWTModuleD common module was not there at
 all.

 So, what did I do wrong? What am I missing?  Here are my assumptions,
 of which some are presumably totally incorrect:

 a) When I compiled my Web app project with my Common GWT JAR file, GWT
 found the class files in the JAR and so any widgets I built in the Web
 app were inheriting the functionality of the common widget code.  This
 did appear to happen without problem.

 b) When GWT was compiling my Web app GWT modules, it was using the
 source files to create the JavaScript files under their
 MyPackage.MyApp.GWTModule[ABC] folders, copying any resource files
 from their original location in the project.  This also appeared to
 occur without a problem.

 c) When GWT was compiling my Web app GWT modules in the project I
 thought it should have seen they were inheriting my
 MyPackage.common.gwt.Common module in the imported JAR file.  I
 thought it should have taken the source files from the JAR to create
 the