[gwt-contrib] [google-web-toolkit] r6137 committed - Did we mention about handler binding?

2009-09-11 Thread codesite-noreply

Revision: 6137
Author: rj...@google.com
Date: Fri Sep 11 17:19:58 2009
Log: Did we mention about handler binding?
http://code.google.com/p/google-web-toolkit/source/detail?r=6137

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 17:10:20 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 17:19:58 2009
@@ -192,7 +192,7 @@
  }}}

  {{{
-  class MyFoo extends Widget {
+  public class MyFoo extends Widget {
  interface MyStyle extends CssResource {
String enabled();
String disabled();
@@ -200,11 +200,33 @@

  @UiField MyStyle style;

+/* ... */
+
  void setEnabled(boolean enabled) {
getElement().addStyle(enabled ? : style.enabled() :  
style.disabled());
  }
}
  }}}
+
+=Simple binding of event handlers=
+
+(* Should the value argument ("button") should be optional? If so the  
handler should get all clickEvents
+if it is not provided. But what does "all" mean, exactly? For every named  
field? *)
+
+(* Cannot yet bind to non-widgets *)
+
+{{{
+  public class MyFoo extends Widget {
+
+  @UiField Button button;
+
+  /* ... */
+
+  @UiHandler("button")
+  void onClick(ClickEvent e) {
+Window.alert("Hello, AJAX");
+  }
+}}}

  =Using an external resource with a UiBinder=


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6136 committed - "Unless otherwise noted, everything described here has been implemente...

2009-09-11 Thread codesite-noreply

Revision: 6136
Author: rj...@google.com
Date: Fri Sep 11 17:10:20 2009
Log: "Unless otherwise noted, everything described here has been  
implemented"
http://code.google.com/p/google-web-toolkit/source/detail?r=6136

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 17:09:28 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 17:10:20 2009
@@ -4,7 +4,7 @@

  Ray Ryan

-This document provides various use cases for the use of the UiBinder, a  
proposed service to generate Widget and DOM structures from XML markup.
+This document provides various use cases for the use of the UiBinder, a  
service to generate Widget and DOM structures from XML markup, to be  
introduced with GWT 2.0. Unless otherwise noted, everything described here  
has been implemented.

  The samples here ignore binder's localization features. See UiBinderI18n.


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6135 committed - Programatic access to styles

2009-09-11 Thread codesite-noreply

Revision: 6135
Author: rj...@google.com
Date: Fri Sep 11 17:09:28 2009
Log: Programatic access to styles
http://code.google.com/p/google-web-toolkit/source/detail?r=6135

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 16:58:20 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 17:09:28 2009
@@ -139,11 +139,11 @@
  }}}

  A CssResource interface is generated for you, along with a ClientBundle.  
This means that the compiler
-will warn you if you misspell the class name when you try to use it (e.g.  
{style.prettty}).
-
-Also, your css class name will be obfuscated, and so protected from  
collision with similar classnames
-in other css blocks. In fact, you can take advantage of this within a  
single template:
-
+will warn you if you misspell the class name when you try to use it (e.g.  
{style.prettty}). Also,
+your css class name will be obfuscated, and so protected from collision  
with like classnames
+in other css blocks--no more global CSS namespace!
+
+In fact, you can take advantage of this within a single template:

  {{{
  
@@ -160,7 +160,7 @@
  
  }}}

-Finally, you don't have to have your CSS inside your ui.xml file to take  
advantage of this.
+Finally, you don't have to have your CSS inside your ui.xml file.
  Most real world projects will probably keep their CSS in a separate file:

  {{{
@@ -175,7 +175,36 @@
  }}}


-
+= Programatic access to inline Styles =
+
+(*type='' doesn't allow for multiple interfaces. Needs thinking*)
+
+{{{
+  
+
+  .redBox { background-color:pink; border: 1px solid red; }
+  .enabled { color:black; }
+  .disabled { color:gray; }
+
+
+I'm a box. And I'm  
red.
+  
+}}}
+
+{{{
+  class MyFoo extends Widget {
+interface MyStyle extends CssResource {
+  String enabled();
+  String disabled();
+}
+
+@UiField MyStyle style;
+
+void setEnabled(boolean enabled) {
+  getElement().addStyle(enabled ? : style.enabled() :  
style.disabled());
+}
+  }
+}}}

  =Using an external resource with a UiBinder=


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6134 committed - Explaining

2009-09-11 Thread codesite-noreply

Revision: 6134
Author: rj...@google.com
Date: Fri Sep 11 16:58:20 2009
Log: Explaining 
http://code.google.com/p/google-web-toolkit/source/detail?r=6134

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 16:45:48 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 16:58:20 2009
@@ -120,6 +120,61 @@
  HelloWidgetWorld helloWorld =
new HelloWidgetWorld("able", "baker", "charlie");
  }}}
+
+= Hello Stylish World =
+
+With the  element, you can define the CSS for your UI right
+where you need it.
+
+{{{
+
+  
+.pretty { background-color: Skyblue; }
+  
+
+  
+Hello, .
+  
+
+}}}
+
+A CssResource interface is generated for you, along with a ClientBundle.  
This means that the compiler
+will warn you if you misspell the class name when you try to use it (e.g.  
{style.prettty}).
+
+Also, your css class name will be obfuscated, and so protected from  
collision with similar classnames
+in other css blocks. In fact, you can take advantage of this within a  
single template:
+
+
+{{{
+
+  
+.pretty { background-color: Skyblue; }
+  
+  
+.pretty { background-color: Orange; }
+  
+
+  
+Hello, .
+  
+
+}}}
+
+Finally, you don't have to have your CSS inside your ui.xml file to take  
advantage of this.
+Most real world projects will probably keep their CSS in a separate file:
+
+{{{
+
+  
+  
+
+  
+Hello, .
+  
+
+}}}
+
+


  =Using an external resource with a UiBinder=

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6133 committed - Aaaaand more typos

2009-09-11 Thread codesite-noreply

Revision: 6133
Author: rj...@google.com
Date: Fri Sep 11 16:45:48 2009
Log: And more typos
http://code.google.com/p/google-web-toolkit/source/detail?r=6133

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 16:42:56 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 16:45:48 2009
@@ -183,7 +183,7 @@

  An element can be passed as an argument to a method on such resource
  class via the ui:apply attribute, as illustrated above with the Sprite and
-ImageResource uses. *not yet implemented*
+ImageResource uses. *(not yet implemented)*

  Note that there is no requirement that a with: class implement the
  ClientBundle interface, this is just an example.
@@ -274,7 +274,7 @@
  }
  }}}

-An error results: *line numbers not yet*
+An error results: *(line numbers not yet implemented)*

  {{{

@@ -380,7 +380,7 @@

  =Apply different xml templates to the same widget=

-You're an  
[[http://code.google.com/events/io/sessions/GoogleWebToolkitBestPractices.html][MVP]]
  
developer. You have a nice view interface, and a templated Widget that  
implements it. How might you use several different xml templates for the  
same view?
+You're an  
[http://code.google.com/events/io/sessions/GoogleWebToolkitBestPractices.html  
MVP] developer. You have a nice view interface, and a templated Widget that  
implements it. How might you use several different xml templates for the  
same view?

  {{{
  public class FooPickerController {

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6132 committed - More typos

2009-09-11 Thread codesite-noreply

Revision: 6132
Author: rj...@google.com
Date: Fri Sep 11 16:42:56 2009
Log: More typos
http://code.google.com/p/google-web-toolkit/source/detail?r=6132

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 16:41:35 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 16:42:56 2009
@@ -183,7 +183,7 @@

  An element can be passed as an argument to a method on such resource
  class via the ui:apply attribute, as illustrated above with the Sprite and
-ImageResource uses. [*not yet implemented*]
+ImageResource uses. *not yet implemented*

  Note that there is no requirement that a with: class implement the
  ClientBundle interface, this is just an example.
@@ -274,7 +274,7 @@
  }
  }}}

-An error results: [ *line numbers unimplemented* ]
+An error results: *line numbers not yet*

  {{{


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6131 committed - Fixed some typoes

2009-09-11 Thread codesite-noreply

Revision: 6131
Author: rj...@google.com
Date: Fri Sep 11 16:41:35 2009
Log: Fixed some typoes
http://code.google.com/p/google-web-toolkit/source/detail?r=6131

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 16:34:19 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 16:41:35 2009
@@ -188,9 +188,9 @@
  Note that there is no requirement that a with: class implement the
  ClientBundle interface, this is just an example.

-=Share ImmutableResourceBundle instances=
-
-Extends LogoNamePanel (from the example above) to allow its bundle to be  
passed in.
+=Share resource instances=
+
+Extends LogoNamePanel (from the example above) to allow the resource to be  
passed in.

  {{{
  public class LogoNamePanel extends Composite {
@@ -201,15 +201,15 @@
final Resources resources;

public LogoNamePanel(Resources resources) {
-initWidget(uiBinder.createAndBindUi(this));
  this.resources = resources;
+initWidget(uiBinder.createAndBindUi(this));
}

public void setUserName(String userName) {
  nameSpan.setInnerText(userName);
}

-  @UiFactory
+  @UiFactory /* this method could be static */
public Resources getResources() {
  return resources;
}
@@ -251,10 +251,9 @@

  {{{
  
-< ui:UiBinder
-  xmlns:ui='urn:ui:com.google.gwt.uibinder'
-  xmlns:g='urn:import:com.google.gwt.user.client.ui'
-  xmlns:my='urn:import:com.my.app.widgets' >
+


  
@@ -275,7 +274,7 @@
  }
  }}}

-An error results:
+An error results: [ *line numbers unimplemented* ]

  {{{

@@ -381,7 +380,7 @@

  =Apply different xml templates to the same widget=

-You're an MVC developer. You have a nice view interface, and a templated  
Widget that implements it. How might you use several different xml  
templates for the same view?
+You're an  
[[http://code.google.com/events/io/sessions/GoogleWebToolkitBestPractices.html][MVP]]
  
developer. You have a nice view interface, and a templated Widget that  
implements it. How might you use several different xml templates for the  
same view?

  {{{
  public class FooPickerController {

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6130 committed - Replacing namespace hacks with {field.references}. Also deleted the un...

2009-09-11 Thread codesite-noreply

Revision: 6130
Author: rj...@google.com
Date: Fri Sep 11 16:34:19 2009
Log: Replacing namespace hacks with {field.references}. Also deleted the  
unimplemented CheckBox example, which is unlikely to work that way.
http://code.google.com/p/google-web-toolkit/source/detail?r=6130

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 16:17:04 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 16:34:19 2009
@@ -92,9 +92,8 @@
  {{{
  

-
+

  Hello, .

@@ -122,85 +121,24 @@
new HelloWidgetWorld("able", "baker", "charlie");
  }}}

-=Putting a label on a checkbox (referring to generated ids within a  
template)=
-
-_Not yet implemented._ You want to make your personal variant on the  
single most common widget, a checkbox with a nice, accessible HTML label  
element tied to it:
+
+=Using an external resource with a UiBinder=

  {{{
-
-
-
-  
-
-
-  
-
-}}}
-
-{{{
-public class LabeledCheckBox extends Widget {
-  interface MyUiBinder extends UiBinder {}
-  private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
-
-  @UiField InputElement myCheckBox;
-  @UiField LabelElement myLabel;
-
-  public LabeledCheckBox() { setElement(uiBinder.createAndBindUi(this)); }
-
-  public void setValue(boolean b) { myCheckBox.setChecked(b); }
-
-  public boolean getValue() { return myCheckBox.isChecked(); }
-
-  public void setName(String name) { myLabel.setInnerText(name); }
-
-  public String getName() { return myLabel.getInnerText(); }
-}
-}}}
-
-The proposal here is that a ui: prefix on any attribute other than id  
fills it with the id generated for a corresponding ui:field.
-
-There are type matching issues here. The ui:field of a DOM element is a  
string id, while that for a UIObject is typed. So, this should fail with a  
type mismatch:
-
-{{{
- 
-}}}
-
-
-  The use of attribute prefixing for this would be a mistake, a bad
-  use of XML. In particular, it fights the use of XML tools to enforce
-  things like, "all labels must have a 'for' attribute."
-
-  Instead, we should bite the bullet and adopt a mini-expression
-  language, something like:
-
-{{{
-
-  
-
-
-  
-
-}}}
-
-
-
-=Using an ImmutableResourceBundle (e.g. CssResource) with a UiBinder=
-
-{{{
-
-
+
+
+
+  
+


-
-
-
-  
+
+
+
+  
  Well hello there
-
+

  

@@ -238,39 +176,17 @@
  }
  }}}

-The with: uri type marks an object whose methods can be called to fill
+The with element declares a field holding an object whose methods can be  
called to fill
  in attribute values. If no public api is provided to set the "with"
  argument (as in this example), it must be instantiable by
  GWT.create().

  An element can be passed as an argument to a method on such resource
-class via an apply attribute, as illustrated above with the Sprite and
-ImageResource uses.
+class via the ui:apply attribute, as illustrated above with the Sprite and
+ImageResource uses. [*not yet implemented*]

  Note that there is no requirement that a with: class implement the
-ClientBundle interface.
-
-
-  As above, this is an abuse of attribute prefixing, and a bad idea.
-  Here again we should use our little expression language:
-
-{{{
-
-
-  
-
-
-  Well hello there
-  
-
-  
-
-}}}
-
-
+ClientBundle interface, this is just an example.

  =Share ImmutableResourceBundle instances=


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6129 committed - Edited wiki page through web user interface.

2009-09-11 Thread codesite-noreply

Revision: 6129
Author: tamplinjohn
Date: Fri Sep 11 16:25:53 2009
Log: Edited wiki page through web user interface.
http://code.google.com/p/google-web-toolkit/source/detail?r=6129

Modified:
  /wiki/UsingOOPHM.wiki

===
--- /wiki/UsingOOPHM.wiki   Thu Sep  3 16:19:08 2009
+++ /wiki/UsingOOPHM.wiki   Fri Sep 11 16:25:53 2009
@@ -16,7 +16,8 @@
  You will need to install a plugin in each browser you intend to use with  
OOPHM.

* *Google Chrome*
-  Not yet, sorry.
+  _*Note: this is relatively untested, but appears to  
work.*_
+  If you are running the !DevChannel version of Google Chrome on Windows  
x86 ([http://dev.chromium.org/getting-involved/dev-channel instructions]  
for switching to !DevChannel), you can install the  
[http://google-web-toolkit.googlecode.com/svn/trunk/plugins/npapi/prebuilt/gwtdmp.crx
  
GWT Chrome extension].  Note that performance is slower than the other  
browsers right now because the plugin runs in an isolated process, though  
we may be able to improve performance before the final release.  Also, you  
may get a "plugin unresponsive" warning which is annoying but harmless.

* *Firefox*
_*Note: If you have previously installed an OOPHM  
plugin, you will need to uninstall or disable it first.*_

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6128 committed - Move Windows registry and dialog box code to common location to share ...

2009-09-11 Thread codesite-noreply
Revision: 6128
Author: j...@google.com
Date: Fri Sep 11 16:24:58 2009
Log: Move Windows registry and dialog box code to common location to share  
between
NPAPI and IE (for now, eventually Chrome needs a platform-independent UI),
checkin packaged Chrome extension with access list UI.

http://code.google.com/p/google-web-toolkit/source/detail?r=6128

Added:
  /trunk/plugins/platform
  /trunk/plugins/platform/Win
  /trunk/plugins/platform/Win/AllowDialog.cpp
  /trunk/plugins/platform/Win/AllowDialog.h
  /trunk/plugins/platform/Win/Preferences.cpp
  /trunk/plugins/platform/Win/Preferences.h
Deleted:
  /trunk/plugins/ie/oophm/oophm/AllowDialog.cpp
  /trunk/plugins/ie/oophm/oophm/AllowDialog.h
  /trunk/plugins/ie/oophm/oophm/Preferences.cpp
  /trunk/plugins/ie/oophm/oophm/Preferences.h
  /trunk/plugins/npapi/extension/platform/WINNT_x86-msvc/plugins/npOOPHM.dll
Modified:
  /trunk/plugins/ie/oophm/oophm/oophm.vcproj
  /trunk/plugins/npapi/ScriptableInstance.cpp
  /trunk/plugins/npapi/VisualStudio/npapi-plugin.vcproj
  /trunk/plugins/npapi/main.cpp
  /trunk/plugins/npapi/npOOPHM.rc
  /trunk/plugins/npapi/prebuilt/gwtdmp/WINNT_x86-msvc/npOOPHM.dll
  /trunk/plugins/npapi/prebuilt/gwtdmp.crx
  /trunk/plugins/npapi/resource.h

===
--- /dev/null
+++ /trunk/plugins/platform/Win/AllowDialog.cpp Fri Sep 11 16:24:58 2009
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009 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.
+ */
+
+#include "AllowDialog.h"
+#include "Debug.h"
+#include "resource.h"
+
+HINSTANCE AllowDialog::hInstance;
+
+static BOOL CALLBACK allowDialogProc(HWND hwndDlg, UINT message, WPARAM  
wParam, LPARAM lParam) {
+  if (message != WM_COMMAND) {
+return false;
+  }
+  bool allowed;
+  switch (LOWORD(wParam)) {
+case IDCANCEL:
+  allowed = false;
+  break;
+case IDC_ALLOW_BUTTON:
+  allowed = true;
+  break;
+default:
+  // ignore anything but buttons which close the dialog
+  return false;
+  }
+  bool remember = IsDlgButtonChecked(hwndDlg, IDC_REMEMBER_CHECKBOX) ==  
BST_CHECKED;
+  int returnVal = (allowed ? 1 : 0) + (remember ? 2 : 0);
+  EndDialog(hwndDlg, (INT_PTR) returnVal);
+  return true;
+}
+
+void AllowDialog::setHInstance(HINSTANCE hInstance) {
+  AllowDialog::hInstance = hInstance;
+}
+
+bool AllowDialog::askUserToAllow(bool* remember) {
+  int result = (int) DialogBox(hInstance,  
MAKEINTRESOURCE(IDD_ALLOW_DIALOG),
+  NULL, (DLGPROC) allowDialogProc);
+  *remember = (result & 2) != 0;
+  return (result & 1) != 0;
+}
===
--- /dev/null
+++ /trunk/plugins/platform/Win/AllowDialog.h   Fri Sep 11 16:24:58 2009
@@ -0,0 +1,42 @@
+#ifndef _H_AllowDialog
+#define _H_AllowDialog
+/*
+ * Copyright 2009 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.
+ */
+
+#ifdef _WINDOWS
+#include 
+#include 
+#include 
+
+class AllowDialog {
+public:
+  static void setHInstance(HINSTANCE hInstance);
+
+  /**
+   * Ask the user if a connection should be allowed.
+   *
+   * @param remember *remember is set to true if the user asked us to  
remember this decision,
+   * false otherwise
+   * @return return true if this connection should be allowed
+   */
+  static bool askUserToAllow(bool* remember);
+
+private:
+  static HINSTANCE hInstance;
+};
+#endif
+
+#endif
===
--- /dev/null
+++ /trunk/plugins/platform/Win/Preferences.cpp Fri Sep 11 16:24:58 2009
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2009 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 

[gwt-contrib] [google-web-toolkit] r6127 committed - Moved here from incubator

2009-09-11 Thread codesite-noreply
Revision: 6127
Author: rj...@google.com
Date: Fri Sep 11 16:18:26 2009
Log: Moved here from incubator
http://code.google.com/p/google-web-toolkit/source/detail?r=6127

Added:
  /wiki/UiBinderI18n.wiki

===
--- /dev/null
+++ /wiki/UiBinderI18n.wiki Fri Sep 11 16:18:26 2009
@@ -0,0 +1,366 @@
+#summary GWT UiBinder i18n use cases
+
+= GWT UiBinder Internationalization Use Cases =
+
+Ray Ryan 
+freely plagiarizing from the brilliant minds behind  
[http://code.google.com/p/gxp/ gxp]
+
+This document explores internationalization use cases supported the GWT  
UiBinder.
+
+= Background =
+
+The basic idea is that the localizable bits of your ui.xml template file  
are marked up as such. When the UiBinder code generator processes the  
template, it gathers these and creates an interface  extends  
com.google.gwt.i18.client.Messages. You then provide localized versions of  
these messages as you would for any other portion of your app. (See the  
Binding to Properties Files section of the  
[http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/i18n/client/Messages.html
  
Messages javadoc].)
+
+Values for annotations that apply at the Messages interface level are set  
as attributes on the root element. Here is an example with all possible  
values set (normally you'd let some of these default).
+
+{{{
+
+}}}
+
+= Open Issues =
+
+Support for Constants and ConstantsWithLookup is not yet designed.
+
+PluralText is theoretically supported, but untested.
+
+So far, I have found no use for Gxp's  element. Is it really not  
needed, or do I just lack imagination?
+
+Unannotated user visible text is allowed--a feature is needed to make this  
a compile time error.
+
+= Complete sentence or headline with no internal tags. =
+
+*Original*
+{{{
+User Account Management.
+}}}
+
+*Tagged*
+{{{
+
+  User Account Management.
+
+}}}
+
+
+*Generated*
+{{{
+public class MyUiBinderImpl implements MyUiBinder {
+  static final MyUiMessages messages = GWT.create(MyUiMessages.class);
+
+  void bindUi(MyUi myUi) {
+HTML html = new HTML();
+html.setHtml("" + messages.message1() + "");
+myUi.setElement(html.getElement());
+  }
+}
+
+...@defaultlocale("en_US")
+...@generatekeys
+...@generatedfrom("com.foo.bar.MyUi.ul.xml")
+public interface MyUiMessages extends com.google.gwt.i18.client.Messages {
+  @DefaultMessage("User Account Management.")
+  @Description("Title of UAM page")
+  String message1();
+}
+}}}
+
+This is the hello world case‚ a simple, unparametrized string.
+
+= Simple HTML tags inside message =
+
+*Original*
+{{{
+We strongly urge you to reconsider.
+}}}
+
+*Tagged*
+{{{
+We strongly urge you to reconsider.
+}}}
+
+*Generated*
+
+As above
+
+Simple formatting is reasonable to put in front of a translator, and
+so UiBinder supports html in messages, not just text.
+
+
+= Messages with unclobberable portions =
+
+*Original*
+{{{
+
+Colgate, with MFP!TM
+}}}
+
+*Tagged*
+{{{
+
+  Colgate,
+  with MFP!TM
+
+}}}
+
+
+*Generated*
+{{{
+public class MyUiBinderImpl implements MyUiBinder {
+  static final String MESSAGE1_BRANDED_SPAN_OPEN = "";
+  static final String MESSAGE1_BRANDED_SPAN_CLOSE = "";
+  static final String MESSAGE1_TRADEMARK = "TM";
+  static final MyUiMessages messages = GWT.create(MyUiMessages.class);
+
+  static final MyUiMessages messages = GWT.create(MyUiMessages.class);
+
+  public void bind(MyUi myUi) {
+HTML html = new HTML();
+html.setHtml(""
+  + messages.message1(MESSAGE1_BRANDED_SPAN_OPEN,
+MESSAGE1_BRANDED_SPAN_CLOSE, MESSAGE1_TRADEMARK)
+  + "");
+  }
+}
+
+...@defaultlocale("en_US")
+...@description("blurb")
+...@generatekeys
+...@generatedfrom("com.foo.bar.MyUi.ul.xml")
+public interface MyUiMessages extends com.google.gwt.i18.client.Messages {
+  @DefaultMessage("{0}Colgate{1}, with MFP!{2}")
+  String message1(
+@Example(MyUiBinderImpl.MESSAGE1_BRANDED_SPAN_OPEN) String  
brandedSpanOpen,
+@Example(MyUiBinderImpl.MESSAGE1_BRANDED_SPAN_CLOSE) String  
brandedSpanClose,
+@Example(MyUiBinderImpl.MESSAGE1_TRADEMARK) String trademark
+  );
+}
+}}}
+
+There are two examples in here. First, you see a {{{ui:ph}}} attribute that
+can be added to any child of a {{{ui:msg}}}, to indicate that placholders
+should be created to protect it from translators. Two placeholders are
+created, for the opening and closing tags of the element (in this
+case, brandedSpanOpen and brandedSpanClose).
+
+Second, we see an element, also named {{{ui:ph}}}, that can surround an
+arbitrary bit of markup to be protected in its entirety (in this case,
+the trademark placeholder).
+
+So, you have both an element **to surround untranslatable
+runs**, and the attribute{{{<}}}/span> to put in
+arbitrary elements to hide their begin and end tags from translators,
+but keep their content as part of the message.
+
+
+= Messages with runtime computed values =
+
+*Original*
+{{{
+
+
+(closed  through )
+}}}
+
+*Tagged*
+{{{
+
+

[gwt-contrib] [google-web-toolkit] r6126 committed - Corrections from tgdavies

2009-09-11 Thread codesite-noreply

Revision: 6126
Author: rj...@google.com
Date: Fri Sep 11 16:17:04 2009
Log: Corrections from tgdavies
http://code.google.com/p/google-web-toolkit/source/detail?r=6126

Modified:
  /wiki/UiBinder.wiki

===
--- /wiki/UiBinder.wiki Fri Sep 11 16:12:54 2009
+++ /wiki/UiBinder.wiki Fri Sep 11 16:17:04 2009
@@ -82,7 +82,7 @@

  // Use:

-SpanElement helloWorld = new HelloWorld("World").getElement();
+Element helloWorld = new HelloWorld("World").getElement();
  }}}

  = Hello Composite World =
@@ -409,7 +409,7 @@
 * Used by MyUiBinder to instantiate CricketScores.
 * Arguments to be filled in the template
 */
-  @UiFactory CricketScores(String... teamNames) {
+  @UiFactory CricketScores makeCricketScores(String... teamNames) {
  return new CricketScores(teamNames);
}
  }

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6125 committed - Moved here from Incubator

2009-09-11 Thread codesite-noreply
Revision: 6125
Author: rj...@google.com
Date: Fri Sep 11 16:12:54 2009
Log: Moved here from Incubator
http://code.google.com/p/google-web-toolkit/source/detail?r=6125

Added:
  /wiki/UiBinder.wiki

===
--- /dev/null
+++ /wiki/UiBinder.wiki Fri Sep 11 16:12:54 2009
@@ -0,0 +1,513 @@
+#summary UiBinder use cases
+
+= GWT UiBinder Use Cases =
+
+Ray Ryan
+
+This document provides various use cases for the use of the UiBinder, a  
proposed service to generate Widget and DOM structures from XML markup.
+
+The samples here ignore binder's localization features. See UiBinderI18n.
+
+= Background =
+
+There are problems with the declarative ui template service as it was  
[DeclarativeUi originally proposed]
+
+  * A template-based UI must be instantiated via GWT.create(), causing an  
implementation detail to be visible as public api
+  * Within a template, only widgets with a zero arg constructor can be used
+  * CssResource and other ImmutableResourceBundle variants cannot be used
+  * Template xml files are found by magical name matching conventions, and  
applying more than one xml template to a class is impossible
+
+In addressing these issues, we have talked about encouraging a proxy style  
of use (basically, use Composite to wrap whatever widget gets  
GWT.create()'d), but dislike the extra object creation implied. We also  
hope for a system that can choose to use innerHTML, cloning, or DOM  
assembly as makes sense per browser type. These shortcomings could be  
addressed by a combination of developer discipline (yuck) and perhaps the  
builder pattern, but we still found ourselves faced with the likelihood of  
hurried developers wrapping an unneeded, generated object.
+
+Emily hit upon the idea of the Configurator (here rechristened UiBinder).  
It’s like a factory, but responsible for filling in the fields of a Widget  
(or other object) that someone else instantiates, rather than instantiating  
one itself. This seems to offer all the benefits of a builder, with no  
concerns of extra object creation, and as a nice side effect avoids a lot  
of boilerplate. This document illustrates its application in various use  
cases.
+
+{{{
+/**
+ * Interface implemented by classes that generate DOM or Widget structures  
from
+ * ui.xml template files, and which inject portions of the generated UI  
into the
+ * fields of an owner.
+ * 
+ * The generated UiBinder implementation will be based on an xml file  
resource
+ * in the same package as the owner class, with the same name and  
a "ui.xml"
+ * suffix. For example, a UI owned by class {...@code bar.baz.Foo} will be  
sought
+ * in {...@code /bar/baz/Foo.ui.xml}. (To use a different template file, put  
the
+ * {...@link UiTemplate} annotation on your UiBinder interface declaration to  
point
+ * the code generator at it.)
+ *
+ * @param  The type of the root object of the generated UI, typically a
+ *  subclass of {...@link com.google.gwt.dom.client.Element} or
+ *  {...@link com.google.gwt.user.client.ui.UIObject}
+ * @param  The type of the object that will own the generated UI
+ */
+public interface UiBinder {
+
+  /**
+   * Creates and returns the root object of the UI, and fills any fields  
of owner
+   * tagged with {...@link UiField}.
+   *
+   * @param owner the object whose {...@literal @}UiField needs will be filled
+   */
+  U createAndBindUi(O owner);
+}
+}}}
+
+= Hello World =
+
+Make a simple generated UI, with a named element, and without widgets.
+
+{{{
+
+
+
+  
+Hello, .
+  
+
+}}}
+
+{{{
+public class HelloWorld extends UIObject { // Could extend Widget instead
+
+  interface MyUiBinder extends UiBinder {}
+  private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
+
+  @UiField SpanElement nameSpan;
+
+  public HelloWorld(String name) {
+// call to createAndBindUi sets this.nameSpan
+setElement(uiBinder.createAndBindUi(this));
+nameSpan.setInnerText(name);
+  }
+}
+
+// Use:
+
+SpanElement helloWorld = new HelloWorld("World").getElement();
+}}}
+
+= Hello Composite World =
+
+Make a simple widget-based UI
+
+{{{
+
+
+
+  
+Hello, .
+  
+
+}}}
+
+{{{
+public class HelloWidgetWorld extends Composite {
+
+  interface MyUiBinder extends UiBinder {}
+  private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
+
+  @UiField ListBox listBox;
+
+  public HelloWidgetWorld(String... names) {
+// sets listBox
+initWidget(uiBinder.createAndBindUi(this));
+for (String name : names) { listBox.addItem(name); }
+  }
+}
+
+// Use:
+
+HelloWidgetWorld helloWorld =
+  new HelloWidgetWorld("able", "baker", "charlie");
+}}}
+
+=Putting a label on a checkbox (referring to generated ids within a  
template)=
+
+_Not yet implemented._ You want to make your personal variant on the  
single most common widget, a checkbox with a nice, accessible HTML label  
element tied to it:
+
+{{{
+
+
+
+  
+
+
+  
+
+}}}
+
+{{{
+public class LabeledCheckBox extends

[gwt-contrib] Re: Introduces inline styles to ui.xml files

2009-09-11 Thread Ray Ryan
Yup. And dropped completely if you forget to use them.

On Fri, Sep 11, 2009 at 3:54 PM, Bruce Johnson  wrote:

> And those class names get obfuscated, too, right?
>
>
> On Fri, Sep 11, 2009 at 6:24 PM, Ray Ryan  wrote:
>
>> Want to see the best part? Css namespaces for free, courtesy of
>> CssResource.
>> 
>>   
>> .pretty {
>>   color: red;
>> }
>>   
>>   
>> .pretty {
>>   color: green;
>> }
>>   
>>
>>   
>> I am red.
>> I am green.
>>   
>> 
>>
>>
>> On Fri, Sep 11, 2009 at 2:23 PM, Bruce Johnson  wrote:
>>
>>> Another w00t!
>>> This is brilliant.
>>>
>>>
>>> On Thu, Sep 10, 2009 at 7:00 PM, Joel Webber  wrote:
>>>
 W00t, thanks. Looking forward to using this.Thanks for doing this
 review, Lex.


 On Thu, Sep 10, 2009 at 4:36 PM,  wrote:

>
> On 2009/09/10 19:54:05, Ray Ryan wrote:
>
>
> Committed r6114
>
> http://gwt-code-reviews.appspot.com/64812
>
>
>



>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Introduces inline styles to ui.xml files

2009-09-11 Thread Bruce Johnson
And those class names get obfuscated, too, right?

On Fri, Sep 11, 2009 at 6:24 PM, Ray Ryan  wrote:

> Want to see the best part? Css namespaces for free, courtesy of
> CssResource.
> 
>   
> .pretty {
>   color: red;
> }
>   
>   
> .pretty {
>   color: green;
> }
>   
>
>   
> I am red.
> I am green.
>   
> 
>
>
> On Fri, Sep 11, 2009 at 2:23 PM, Bruce Johnson  wrote:
>
>> Another w00t!
>> This is brilliant.
>>
>>
>> On Thu, Sep 10, 2009 at 7:00 PM, Joel Webber  wrote:
>>
>>> W00t, thanks. Looking forward to using this.Thanks for doing this
>>> review, Lex.
>>>
>>>
>>> On Thu, Sep 10, 2009 at 4:36 PM,  wrote:
>>>

 On 2009/09/10 19:54:05, Ray Ryan wrote:


 Committed r6114

 http://gwt-code-reviews.appspot.com/64812



>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6124 committed - Revert inadvertent commit.

2009-09-11 Thread codesite-noreply

Revision: 6124
Author: j...@google.com
Date: Fri Sep 11 15:38:45 2009
Log: Revert inadvertent commit.

http://code.google.com/p/google-web-toolkit/source/detail?r=6124

Deleted:
  /trunk/plugins/npapi/prebuilt/chrome-gwtdmp


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6123 committed - Save Chrome GWTDMP signing key.

2009-09-11 Thread codesite-noreply

Revision: 6123
Author: j...@google.com
Date: Fri Sep 11 15:37:42 2009
Log: Save Chrome GWTDMP signing key.

http://code.google.com/p/google-web-toolkit/source/detail?r=6123

Added:
  /trunk/plugins/npapi/prebuilt/chrome-gwtdmp
  /trunk/plugins/npapi/prebuilt/chrome-gwtdmp/README.txt
  /trunk/plugins/npapi/prebuilt/chrome-gwtdmp/signing-key.pem

===
--- /dev/null
+++ /trunk/plugins/npapi/prebuilt/chrome-gwtdmp/README.txt  Fri Sep 11  
15:37:42 2009
@@ -0,0 +1,1 @@
+This is used to sign the GWT Development Mode Plugin extension for Chrome.
===
--- /dev/null
+++ /trunk/plugins/npapi/prebuilt/chrome-gwtdmp/signing-key.pem Fri Sep 11  
15:37:42 2009
@@ -0,0 +1,16 @@
+-BEGIN PRIVATE KEY-
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMxOYLR7rUA0ZUKma
+9IT9r8RNsyPh9ow9SU13xbdmD4SbOYkrMFq+aTz95Ks5Kqw0Et2eeekeBZQX4grJi
+2JkB6lxtbuCEJxs7LdN9RBVOY1z1zCPao5Sz6Sypn9SqNeRze5xzOvJoE8PkwLkj0
+khVp7xyjDKVGa+GWWvWyYik1vAgMBAAECgYAMbqiL0wrT4VxYFfBxtC1Lqyx+fi1y
+JZCFVyXgKlPdUxm1V337txrB4uap0kOH74J9VRRN+EAme3WUv6tvEfPnDa2rc1roq
+G1CPMlDt9mZGk+qvWE3CdYbZW53vWPHkVoEoKgQndp3rdd5QiSJoIIxKpGOUZX2aE
+h01is0vVbdYQJBAOzl0ZQQKeARGP09gsUyLVN6JU/r33dhnTFY+6IFUp22IBzqA+n
+jBv10ZaGuOxRPIViSRNRjrj/qsMwyIqGmaasCQQDcx8jx02CB2WD/VfPy75BR+oJb
+NowqmfPVYmTZYDcAqFTPJYOcfvMqC28rH5fzNVhqKEBs1ASHCMF2EF2zYo9NAkEAw
+Rkjl/kE6SuGnwWAjpSz9ZNezqKJaJocs5jAo/SKvxsxWeA2iHMRw48ZOIz4gzltCP
+FRQX5vDpKSwh8rs3AeOQJAfhH7NdO9BQjLMaK0RaH0qEtDCrDQQzdcHBouek5Nuit
+lGlBSohd/5R9YYKiOzQtGLIBFoZ9D4pPmXPOlfdym9QJAR/My3EXeThKWU/VQhMuf
+I2mKPPGrHnCrLAdppU41EZtskVmysqg/tDKnc+5YOLjcvpds8xRCkb5DkYI/k/GhE
+w==
+-END PRIVATE KEY-

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Nullness tracking

2009-09-11 Thread scottb

Lots of good changes in here we really need to get in!  How much does
this save on code size?

Mostly LGTM with a few suggestions, nits, and confusions; nothing major.


http://gwt-code-reviews.appspot.com/62805/diff/1/21
File dev/core/src/com/google/gwt/dev/jjs/ast/JBinaryOperation.java
(right):

http://gwt-code-reviews.appspot.com/62805/diff/1/21#newcode23
Line 23: public class JBinaryOperation extends JExpression {
I assume you're deleting HasSettableType?  Don't see the deletion in
this patch.

http://gwt-code-reviews.appspot.com/62805/diff/1/9
File dev/core/src/com/google/gwt/dev/jjs/ast/JNewArray.java (right):

http://gwt-code-reviews.appspot.com/62805/diff/1/9#newcode102
Line 102: public JType getType() {
Should be able to use covariant return type to return a JNonNullType.

http://gwt-code-reviews.appspot.com/62805/diff/1/13
File dev/core/src/com/google/gwt/dev/jjs/ast/JNewInstance.java (right):

http://gwt-code-reviews.appspot.com/62805/diff/1/13#newcode39
Line 39: public JType getType() {
Should be able to use covariant return type to return a JNonNullType.

http://gwt-code-reviews.appspot.com/62805/diff/1/18
File dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java (right):

http://gwt-code-reviews.appspot.com/62805/diff/1/18#newcode28
Line 28: public JNonNullType(JReferenceType ref) {
Should be restricted, only JProgram should create since they're
interned.

http://gwt-code-reviews.appspot.com/62805/diff/1/11
File dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java (right):

http://gwt-code-reviews.appspot.com/62805/diff/1/11#newcode702
Line 702: JReferenceType tGreater = classify1 > classify2 ? type1 :
type2;
Holy cow... is this just a straight up bug?  Should we commit this fix
immediately as a separate change?

http://gwt-code-reviews.appspot.com/62805/diff/1/11#newcode1205
Line 1205: public JReferenceType strongerType(JReferenceType type1,
JReferenceType type2) {
BTW: I completely dropped the ball on javadoc here, making it very hard
to understand the precise semantics.  I assume based on your changes
that you do understand, would you mind elucidating?  Thanks!

http://gwt-code-reviews.appspot.com/62805/diff/1/15
File dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java (right):

http://gwt-code-reviews.appspot.com/62805/diff/1/15#newcode416
Line 416: for (int i = 0; i < program.getDeclaredTypes().size(); ++i) {
All 4 of these can just be turned into enhanced for loops while you're
in there.

http://gwt-code-reviews.appspot.com/62805/diff/1/15#newcode823
Line 823: private boolean isInstantiatedType(JReferenceType type,
You know what, this whole instantiated types mess where we pass around
parameters that shadow the instance field is completely bogus.  If
you're going to make this non-static, how about we just fix all the
places where we pass an 'instantiatedTypes' param and always use the
field.  I think it's literally always the same object.

http://gwt-code-reviews.appspot.com/62805/diff/1/27
File dev/core/src/com/google/gwt/dev/jjs/impl/EqualityNormalizer.java
(right):

http://gwt-code-reviews.appspot.com/62805/diff/1/27#newcode90
Line 90: if (lhsStatus != StringStatus.NONNULL
This gets to be a little confusing.  Maybe we should make
USE_TRIPLE_EQUALS equal '2' if either one is a non-null, then a switch
statement can differentiate the cases.  Because in that case, no
replacement even needs to be done, right?

http://gwt-code-reviews.appspot.com/62805/diff/1/27#newcode152
Line 152: if (lhs.getType() instanceof JPrimitiveType) {
Can either of these two new if tests actually get hit? I'd have thought
the surrounding code would make it impossible.  Should these be
assertions?

http://gwt-code-reviews.appspot.com/62805/diff/1/42
File dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java (left):

http://gwt-code-reviews.appspot.com/62805/diff/1/42#oldcode553
Line 553: typeList.add(typeNull);
If we don't need this code, the comment should also go.

http://gwt-code-reviews.appspot.com/62805/diff/1/42
File dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java
(right):

http://gwt-code-reviews.appspot.com/62805/diff/1/42#newcode129
Line 129: && method != program.getNullMethod()) {
LG, but change related?

http://gwt-code-reviews.appspot.com/62805/diff/1/42#newcode409
Line 409: } else if (triviallyFalse && toType != program.getTypeNull())
{
I was slightly nervous about the changes in
JTypeOracle.canTriviallyCast/canTheoreticallyCast with respect to
nullity, and I think this is why.  I'm sure the code is right, but I'm
struggling to reason about it.

http://gwt-code-reviews.appspot.com/62805/diff/1/42#newcode418
Line 418: // TODO(nullable): I don't understand this.
I still don't understand this.  LOL.

http://gwt-code-reviews.appspot.com/62805

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Introduces inline styles to ui.xml files

2009-09-11 Thread Ray Ryan
Want to see the best part? Css namespaces for free, courtesy of CssResource.

  
.pretty {
  color: red;
}
  
  
.pretty {
  color: green;
}
  

  
I am red.
I am green.
  



On Fri, Sep 11, 2009 at 2:23 PM, Bruce Johnson  wrote:

> Another w00t!
> This is brilliant.
>
>
> On Thu, Sep 10, 2009 at 7:00 PM, Joel Webber  wrote:
>
>> W00t, thanks. Looking forward to using this.Thanks for doing this review,
>> Lex.
>>
>>
>> On Thu, Sep 10, 2009 at 4:36 PM,  wrote:
>>
>>>
>>> On 2009/09/10 19:54:05, Ray Ryan wrote:
>>>
>>>
>>> Committed r6114
>>>
>>> http://gwt-code-reviews.appspot.com/64812
>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6122 committed - Merging trunk/@6056:6057 into this branch...

2009-09-11 Thread codesite-noreply

Revision: 6122
Author: jlaba...@google.com
Date: Fri Sep 11 14:37:27 2009
Log: Merging trunk/@6056:6057 into this branch
- Fixes a broken XMLTest in Safari 4.

svn merge -r6056:6057 https://google-web-toolkit.googlecode.com/svn/trunk/ .

Review by: fabbott (TBR)


http://code.google.com/p/google-web-toolkit/source/detail?r=6122

Modified:
  /releases/1.7/branch-info.txt
  /releases/1.7/user/src/com/google/gwt/xml/client/Node.java
  /releases/1.7/user/test/com/google/gwt/xml/client/XMLTest.java

===
--- /releases/1.7/branch-info.txt   Thu Jul  2 10:49:58 2009
+++ /releases/1.7/branch-info.txt   Fri Sep 11 14:37:27 2009
@@ -6,6 +6,8 @@
  /releases/1.7/ was created (r5660) as a straight copy from  
/releases/1...@r5659, because adding ie8 was deemed a minor version bump.

  Merges:
+/trunk/@6056:6057 was merged into this branch to fix XMLTest
+
  The next merge into trunk will be:
  svn merge -r5660:  
https://google-web-toolkit.googlecode.com/svn/releases/1.7 .

===
--- /releases/1.7/user/src/com/google/gwt/xml/client/Node.java  Tue Jan 29  
15:05:28 2008
+++ /releases/1.7/user/src/com/google/gwt/xml/client/Node.java  Fri Sep 11  
14:37:27 2009
@@ -215,7 +215,8 @@

/**
 * This method may collapse adjacent text nodes into one text node,  
depending
-   * on the implementation.
+   * on the implementation. Safari 4.0 and Chrome will also merge CDATA  
nodes
+   * into text nodes, even though they support CDATA nodes as distinct  
nodes.
 */
void normalize();

===
--- /releases/1.7/user/test/com/google/gwt/xml/client/XMLTest.java  Mon Oct 
 
27 09:03:27 2008
+++ /releases/1.7/user/test/com/google/gwt/xml/client/XMLTest.java  Fri Sep 
 
11 14:37:27 2009
@@ -122,13 +122,16 @@
  top.getFirstChild().getFirstChild().appendChild(deep2);

  top.appendChild(d.createTextNode("0123456789"));
-top.appendChild(d.createCDATASection("abcdefghij"));
+top.appendChild(d.createTextNode("abcdefghij"));
+top.appendChild(d.createElement("e4"));
+top.appendChild(d.createCDATASection("klmnopqrst"));
  return d;
}

/**
 * Returns the module name for GWT unit test running.
 */
+  @Override
public String getModuleName() {
  return "com.google.gwt.xml.XML";
}
@@ -165,18 +168,18 @@
  createProcessingInstruction, createTextNode});

  for (int i = 0; i < canHaveChildren.size(); i++) {
-  Node parent = (Node) canHaveChildren.get(i);
+  Node parent = canHaveChildren.get(i);
Node cloneParent = parent.cloneNode(false);
if (canBeChildren.contains(parent)) {
  d.appendChild(cloneParent);
}
for (int j = 0; j < canBeChildren.size(); j++) {
-Node child = (Node) canBeChildren.get(j);
+Node child = canBeChildren.get(j);
  cloneParent.appendChild(child.cloneNode(false));
}
for (int j = 0; j < canBeChildren.size(); j++) {
  Node clonedChild = cloneParent.getChildNodes().item(j);
-Node hopefullySameChild = (Node) canBeChildren.get(j);
+Node hopefullySameChild = canBeChildren.get(j);
  assertEquals(hopefullySameChild.cloneNode(false).toString(),
  clonedChild.toString());
}
@@ -426,22 +429,17 @@
  assertEquals("t data", t.getData(), "01234");
  assertEquals("LeftT data", rightT.getData(), "56789");
  CDATASection cd = (CDATASection)  
d.getDocumentElement().getChildNodes().item(
-5);
+7);
  Text rightCD = cd.splitText(5);
  assertEquals("cd and leftCd parent equality", cd.getParentNode(),
  rightCD.getParentNode());
  assertEquals("leftCD.getPreviousSibling",  
rightCD.getPreviousSibling(), cd);
  assertEquals("cd length", cd.getData().length(), 5);
  assertEquals("leftCD.length", rightCD.getData().length(), 5);
-assertEquals("cd data", cd.getData(), "abcde");
-assertEquals("leftCD data", rightCD.getData(), "fghij");
+assertEquals("cd data", cd.getData(), "klmno");
+assertEquals("leftCD data", rightCD.getData(), "pqrst");
  d.getDocumentElement().normalize();
-if (XMLParser.supportsCDATASection()) {
-  assertEquals("normalized t",  
d.getDocumentElement().getChildNodes().item(
-  3).toString(), "0123456789");
-} else {
-  assertEquals("normalized t",  
d.getDocumentElement().getChildNodes().item(
-  3).toString(), "0123456789abcdefghij");
-}
+assertEquals("normalized t",  
d.getDocumentElement().getChildNodes().item(
+3).toString(), "0123456789abcdefghij");
}
  }

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: GWT Incubator compatibility policy

2009-09-11 Thread Bruce Johnson
We've been a little ambivalent about how well the incubator is working --
it's taken a lot longer to things to move into trunk than we ever guessed it
would, usually for pretty good reasons. So, we need to find a different way
of building up a pipeline, and that's a somewhat unsolved problem as yet. If
anyone has ideas, let 'em rip.

On Thu, Sep 10, 2009 at 2:21 PM, Ray Ryan  wrote:

> If you're after guarantees I guess that would be 1686, the one that the
> 1.7 jar was cut from (gwt-incubator-july-14-2009.jar). Looking at the svn
> history, nothing has actually changed in the code from that one to the
> removal of StyleInjector. It's all wiki edits and such since then.
>
>
> On Thu, Sep 10, 2009 at 8:46 AM, jay  wrote:
>
>>
>> So...as of right now, what is the *last* version of gwt-incubator that
>> is guaranteed to work with GWT 1.7? Is it safe to assume that it is
>> the version immediately prior to the removal of StyleInjector?
>>
>> thanks,
>>
>> jay
>>
>> On Sep 10, 8:28 am, Isaac Truett  wrote:
>> > [oops - +gwtc]
>> >
>> > Hi, Ray,
>> >
>> > I appreciate the drive to move forward and I applaud jumping on
>> > opportunities to remove redundant code.
>> >
>> > The reason this policy was important, to me at least, is that it
>> > provided a baseline to work against. The code in the incubator can be
>> > very useful (I use PagingScrollTable extensively and used DatePicker
>> > from incubator before it graduated) but it's also risky because the
>> > code is still experimental and subject to change. The assurance that
>> > those changes would be compatible with a packaged and released GWT
>> > build (even just a milestone) meant that I could build incubator from
>> > trunk and pick up the latest features and bugfixes as long as my
>> > project tracked the latest GWT build. Because of the GWT policies on
>> > deprecation and backwards compatibility, this has been fairly easy in
>> > practice. As it stands now, incubator will not compile except against
>> > GWT trunk, which is also notoriously unstable (it wasn't building as
>> > recently as last night, which I see was corrected this morning). This
>> > presents a much higher risk for those of us using incubator code.
>> >
>> > It also becomes harder to work on the incubator itself when it has to
>> > compile against GWT trunk. I wanted to look into issue #267 last night
>> > and I was stymied by GWT trunk not being in a buildable state. Not an
>> > insurmountable obstacle, but one that seems unnecessary to me.
>> >
>> > - Isaac
>> >
>> >
>> >
>> > On Thu, Sep 10, 2009 at 11:03 AM, Ray Ryan  wrote:
>> > > Hey, Isaac.
>> > > That policy has proven very difficult to live with. (And to tell you
>> the
>> > > truth I forgot about it.)
>> > > The reasoning here was that we have released incubator jars that work
>> with
>> > > 1.7 and no plans to issue further ones before 2.0 MS1 lands. Should it
>> prove
>> > > necessary to go back and do so we can go back and branch.
>> > > In the meantime, we were faced bugs due to FastTree in particular
>> being tied
>> > > to the old StyleInjector while new development was moving to the
>> version in
>> > > GWT.  We saw the opportunity to delete redundant code and took it.
>> > > Is this going to cause problems for anyone?
>> > > rjrjr
>> >
>> > > On Wed, Sep 9, 2009 at 3:26 PM, Isaac Truett 
>> wrote:
>> >
>> > >> Last year, Emily stated that it would compile against the "latest
>> > >> gwt-milestone and gwt-trunk". There hasn't been a 2.0 milestone that
>> > >> I've seen, so under the policy from last year StyleInjector should
>> not
>> > >> have been removed in revisions 1712-1715.
>> >
>> > >> So, what's the current policy for incubator trunk compatibility?
>>
>>
>
> >
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Introduces inline styles to ui.xml files

2009-09-11 Thread Bruce Johnson
Another w00t!
This is brilliant.

On Thu, Sep 10, 2009 at 7:00 PM, Joel Webber  wrote:

> W00t, thanks. Looking forward to using this.Thanks for doing this review,
> Lex.
>
>
> On Thu, Sep 10, 2009 at 4:36 PM,  wrote:
>
>>
>> On 2009/09/10 19:54:05, Ray Ryan wrote:
>>
>>
>> Committed r6114
>>
>> http://gwt-code-reviews.appspot.com/64812
>>
>>
>>
>
> >
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: CloneStatementVisitor

2009-09-11 Thread Lex Spoon

On Fri, Sep 11, 2009 at 4:25 PM, Scott Blum  wrote:
> Gotcha.  Okay that makes sense.  At the same time, I can't help but wonder
> if the idea of retargeting to new params/locals couldn't somehow be baked
> into the Cloners to force the issue.

Conceivably a statement could be cloned and then put back in the same
method.  So, a clone of a parameter ref makes sense on its own.  It
depends on what you do with it, or with what other transformations you
do afterwards.

A check at the place the item is added into a tree would certainly
make sense, but it would probably slow down the compiles.  As one
possibility, Context.replaceMe could, if some paranoid mode flag is
turned on, verify that the inserted tree makes sense.

Lex

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: CloneStatementVisitor

2009-09-11 Thread Scott Blum
Gotcha.  Okay that makes sense.  At the same time, I can't help but wonder
if the idea of retargeting to new params/locals couldn't somehow be baked
into the Cloners to force the issue.

On Fri, Sep 11, 2009 at 3:52 PM, Ray Cromwell  wrote:

>
> That's currently handled by the new inliner, which I'll be dropping
> hopefully today after I drop the Flattener/Unflattener and some other stuff.
> Basically, each method-call param is assigned to a temp, and for each local
> in the target method, a new temp local is created. CloneStatementVisitor is
> run on the target with a subclass that looks up params and locals and
> replaces them with references to ones in the callsite.  Also,
> JReturnStatements are replaced by assignment to a local at the callsite in
> cases where the return doesn't short-circuit control flow in the method.
> (e.g. returns from inside of a loop or an if statement).  This of course
> generates a lot of unnecessary temps (an extra parameter temp is only truly
> needed in cases where assignment to the param occurs), but there is an
> intra-procedural copy-propagation/prune pass which cleans all of these up.
> -Ray
>
>
>
> On Fri, Sep 11, 2009 at 12:19 PM,  wrote:
>
>> The one thing I don't understand is how you handle locals and params?
>> If you clone an expression or statements from one method into another,
>> how do you handle the fact that local refs and params target the wrong
>> method?
>>
>> Otherwise LGTM.
>>
>>
>> http://gwt-code-reviews.appspot.com/66802
>>
>
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Compiler Stats Intrumentation

2009-09-11 Thread cromwellian

Reviewers: Lex, scottb,

Description:
Most of my other optimizations depend on this class, so I'm dropping
this first for review along with a sample instrumentation of
MethodInliner.

This class simply counts certain operations or non-operations within the
compiler, in this case, why certain things got inlined or didn't.

Add -Dgwt.tracestats=true to see the output. Useful for examining the
effect certain optimizations have on applications at a macroscopic
level.


Please review this at http://gwt-code-reviews.appspot.com/64813

Affected files:
   dev/core/src/com/google/gwt/dev/jjs/impl/MethodInliner.java
   dev/core/src/com/google/gwt/dev/jjs/impl/Tracing.java



--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: CloneStatementVisitor

2009-09-11 Thread Ray Cromwell
That's currently handled by the new inliner, which I'll be dropping
hopefully today after I drop the Flattener/Unflattener and some other stuff.
Basically, each method-call param is assigned to a temp, and for each local
in the target method, a new temp local is created. CloneStatementVisitor is
run on the target with a subclass that looks up params and locals and
replaces them with references to ones in the callsite.  Also,
JReturnStatements are replaced by assignment to a local at the callsite in
cases where the return doesn't short-circuit control flow in the method.
(e.g. returns from inside of a loop or an if statement).  This of course
generates a lot of unnecessary temps (an extra parameter temp is only truly
needed in cases where assignment to the param occurs), but there is an
intra-procedural copy-propagation/prune pass which cleans all of these up.
-Ray



On Fri, Sep 11, 2009 at 12:19 PM,  wrote:

> The one thing I don't understand is how you handle locals and params?
> If you clone an expression or statements from one method into another,
> how do you handle the fact that local refs and params target the wrong
> method?
>
> Otherwise LGTM.
>
>
> http://gwt-code-reviews.appspot.com/66802
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: CloneStatementVisitor

2009-09-11 Thread scottb

The one thing I don't understand is how you handle locals and params?
If you clone an expression or statements from one method into another,
how do you handle the fact that local refs and params target the wrong
method?

Otherwise LGTM.

http://gwt-code-reviews.appspot.com/66802

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] CloneStatementVisitor

2009-09-11 Thread cromwellian

Reviewers: Lex, scottb,

Description:
General purpose statement cloner (delegates to CloneExpressionVisitor
for expressions). Used by upcoming inliner.

Please review this at http://gwt-code-reviews.appspot.com/66802

Affected files:
   dev/core/src/com/google/gwt/dev/jjs/impl/CloneStatementVisitor.java



--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit] r6121 committed - Use around exception stack traces to preserve whitespace and use...

2009-09-11 Thread codesite-noreply

Revision: 6121
Author: j...@google.com
Date: Fri Sep 11 10:46:51 2009
Log: Use  around exception stack traces to preserve whitespace and use  
a
fixed-width font.

Patch by: jat
Review by: spoon (desk)

http://code.google.com/p/google-web-toolkit/source/detail?r=6121

Modified:
  /trunk/dev/oophm/src/com/google/gwt/dev/shell/log/SwingTreeLogger.java

===
--- /trunk/dev/oophm/src/com/google/gwt/dev/shell/log/SwingTreeLogger.java  
 
Sat Aug 22 16:01:38 2009
+++ /trunk/dev/oophm/src/com/google/gwt/dev/shell/log/SwingTreeLogger.java  
 
Fri Sep 11 10:46:51 2009
@@ -113,7 +113,7 @@
// Show the exception info for anything other  
than "UnableToComplete".
//
if (exceptionDetail != null) {
-sb.append(htmlEscape(exceptionDetail));
+sb.append("" + htmlEscape(exceptionDetail) + "");
}
if (helpInfo != null) {
  URL url = helpInfo.getURL();

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Add more HtmlUnit platforms/browsers testings

2009-09-11 Thread Frank Lin
Here was what I got when using "-htmlunit FF3,FF2,IE7,IE6" The memory
already 2G: -Xmx=2048m
[junit] Exception in thread "main" java.lang.OutOfMemoryError: Java heap
space
[junit] at
java.lang.StringCoding$StringEncoder.encode(StringCoding.java:250)
[junit] at java.lang.StringCoding.encode(StringCoding.java:290)
[junit] at java.lang.StringCoding.encode(StringCoding.java:302)
[junit] at java.lang.String.getBytes(String.java:994)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter.endTestSuite(PlainJUnitResultFormatter.java:150)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.fireEndTestSuite(JUnitTestRunner.java:621)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:453)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:912)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:766)

On Wed, Sep 9, 2009 at 8:39 PM, Frank Lin  wrote:

> Should the compiled JS code be browser dependent? With multiple threads, it
> ran out of memory for me couple times. Lastly, if one browser failed, it
> stops the rest of the tests.
>
>
> On Wed, Sep 9, 2009 at 5:02 PM, Amit Manjhi  wrote:
>
>> For now, it seems fine. It is the same issue when running multiple
>> browsers simultaneously during remoteweb or selenium tests.
>>
>>
>> On Wed, Sep 9, 2009 at 1:45 PM, Frank Lin  wrote:
>>
>>> Just one issue: is it okay to use test.out for all platforms if using
>>> '-htmlunit FF3, FF2, IE6, IE7'?
>>>  test.out="${junit.out}/${build.host.platform}-htmlunit-web-mode"
>>>
>>> On Wed, Sep 9, 2009 at 11:40 AM, Amit Manjhi wrote:
>>>


 On Wed, Sep 9, 2009 at 11:19 AM, Frank Lin  wrote:

> Hi Amit,
>
>
> On Wed, Sep 9, 2009 at 9:25 AM,  wrote:
>
>> Hi Frank,
>>
>> Instead of having individual ant commands for each browser emulation,
>> it
>> would be better to test all the browsers in parallel using -htmlunit
>> FF3, FF2, IE6, IE7.
>>
>> I would suggest more ant targets rather let ant optimize the
> parallelism since blaze might be able to shard them better. We might need
> Freeland's expertise on that.
>

 When all browsers are specified, the parallelism is at the JVM level,
 not at the ant level. A separate HtmlUnit thread is started to emulate each
 browser.

>>>
>>>
>>
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Nullness tracking

2009-09-11 Thread Scott Blum
By "today" I meant today, apparently.

On Thu, Aug 27, 2009 at 10:22 AM, Scott Blum  wrote:

> I plan to look at this today.
>
> On Tue, Aug 25, 2009 at 2:54 PM,  wrote:
>
>> Reviewers: scottb,
>>
>> Description:
>> Tracks nullness within the compiler by adding a JNonNull type.
>>
>> See http://code.google.com/p/google-web-toolkit/issues/detail?id=1819 .
>>
>>
>> Please review this at http://gwt-code-reviews.appspot.com/62805
>>
>> Affected files:
>>  dev/core/src/com/google/gwt/core/ext/soyc/impl/SizeMapRecorder.java
>>  dev/core/src/com/google/gwt/dev/jjs/CorrelationFactory.java
>>  dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JArrayRef.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JBinaryOperation.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JCastOperation.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JConditional.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JGwtCreate.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JMethod.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JNewArray.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JNewInstance.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JNullType.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JReboundEntryPoint.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JStringLiteral.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JThisRef.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/JVariable.java
>>  dev/core/src/com/google/gwt/dev/jjs/ast/js/JsniFieldRef.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/ArrayNormalizer.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/CastNormalizer.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/CloneExpressionVisitor.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/CodeSplitter.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/DeadCodeElimination.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/EqualityNormalizer.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/FragmentExtractor.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/JavaScriptObjectNormalizer.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/JavaToJavaScriptMap.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/LongCastNormalizer.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/LongEmulationNormalizer.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/MakeCallsStatic.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/MethodCallTightener.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/SourceGenerationVisitor.java
>>  dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java
>>
>>  
>> dev/core/src/com/google/gwt/dev/js/JsSourceGenerationVisitorWithSizeBreakdown.java
>>  dev/core/test/com/google/gwt/dev/jjs/JjsTypeTest.java
>>
>>
>>
>

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Issue 3849: RPC Serialization policy

2009-09-11 Thread George Georgovassilis

I've been recently struggling with getting Gilead to work properly
with dynamic proxy mode. When DTOs implement Serializable instead of
IsSerializable, RPC forces the use of a serialization policy.
Apparently not all domain classes end up in the serialization policy
(as a matter of fact, manually copying them there does not do the
trick either) and the only workaround I found so far was implementing
IsSerializable, which however creates a dependency of the domain
object model on GWT.

I asked around about this and there has been some fingerpointing [1],
[2] towards GWT. What's the deal?

[1] http://code.google.com/p/google-web-toolkit/issues/detail?id=3849&can=5
[2] 
http://groups.google.com/group/Google-Web-Toolkit-Contributors/msg/214aa3c46122d0d9
--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---