Re: [gwt-contrib] Making GWT look good...

2010-08-07 Thread Johan Rydberg

On 8/6/10 2:44 PM, Chris Ramsdale wrote:

Hey GWT(ers),

I've heard from many of you that GWT apps simply don't look that good 
out of the box, and styling the default app would go a long way. We 
couldn't agree more. As some of you know, GWT 2.1 (with the help of 
Spring Roo 1.1) will generate a full-fledged scaffolding app that 
users can then go customize, and build on top of. The current 
incarnation looks like this:


http://gwt-bikeshed.appspot.com/Scaffold.html

And while it's a start, it's long from being...well...good looking. 
I'm working with some UI/UX people back at Google, but in the spirit 
of openness I wanted to get feedback from the real users -- you. 
Specifically we're looking for business apps that are a good example 
of UI and/or UX. Apps that allow you to track tasks, expenses, travel, 
projects, etc.


If you have ideas, simply post a link in a follow-up to this thread.
I think Aristo looks nice: 
http://www.antipode.ca/2009/themes-sproutcore-vs-cappuccino/


And there's a CSS implementation: http://github.com/maccman/aristo

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


[gwt-contrib] Allow to keep size of Widget on DeckPanel (issue732802)

2010-08-07 Thread Konstantin . Scheglov

Reviewers: jgw, Ray Ryan,

Description:
I probably already told about this couple years ago, but DeckPanel, as
it is done now, is IMHO not reliable in area of size management. More
precise - using DeckPanel in TabPanel.

  TabPanel uses VerticalPanel to host TabBar and DeckPanel, and it set
panel.setCellHeight(deck, 100%). So, when you set size of TabPanel, it
never will be same as you requested. If you ask 150px, it will be 150px
+ height of TabBar. Moreover, at least with IE it behaves as if
requested height was ignored.

  Only reliable approach which I found it setting size of Widget which
is added into TabPanel and never touching size of TabPanel itself. I.e.

tabPanel.add(button, AAA);
button.setSize(5cm, 3cm);

  As you can see, this code sets Button size _after_ adding to TabPanel,
because DeckPanel sets size to 100% and this forces using default size
of Button. And we can not set height of TabPanel, see above.

  Unfortunately this approach does not work in UiBinder. Properties of
UIObject are applied before adding.

  So, I propose this patch in which we check first if there is existing
width/height in Widget and set 100% only if no size yet.

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

Affected files:
  user/src/com/google/gwt/user/client/ui/DeckPanel.java
  user/test/com/google/gwt/user/client/ui/DeckPanelTest.java


### Eclipse Workspace Patch 1.0
#P trunk
Index: user/src/com/google/gwt/user/client/ui/DeckPanel.java
===
--- user/src/com/google/gwt/user/client/ui/DeckPanel.java   (revision 8454)
+++ user/src/com/google/gwt/user/client/ui/DeckPanel.java   (working copy)
@@ -341,7 +341,15 @@
   private void finishWidgetInitialization(Element container, Widget w) {
 UIObject.setVisible(container, false);
 DOM.setStyleAttribute(container, height, 100%);
-w.setSize(100%, 100%);
+
+// Set 100% by default.
+Element element = w.getElement();
+if (DOM.getStyleAttribute(element, width).equals()) {
+  w.setWidth(100%);
+}
+if (DOM.getStyleAttribute(element, height).equals()) {
+  w.setHeight(100%);
+}

 // Issue 2510: Hiding the widget isn't necessary because we hide its
 // wrapper, but it's in here for legacy support.
Index: user/test/com/google/gwt/user/client/ui/DeckPanelTest.java
===
--- user/test/com/google/gwt/user/client/ui/DeckPanelTest.java	(revision  
8489)
+++ user/test/com/google/gwt/user/client/ui/DeckPanelTest.java	(working  
copy)

@@ -16,6 +16,8 @@

 package com.google.gwt.user.client.ui;

+import com.google.gwt.user.client.DOM;
+
 /**
  * Test for {...@link DeckPanel}.
  */
@@ -99,6 +101,46 @@
 // Verify content.onLoad was actually called
 assertEquals(attached, content.getText());
   }
+
+  /**
+   * Test that style width/height is set to 100% by default.
+   */
+  public void testWidgetDefaultSizeOnAdd() {
+DeckPanel deck = new DeckPanel();
+RootPanel.get().add(deck);
+
+// Prepare widget, no width/height initially.
+Label content = new Label(content);
+assertEquals(, content.getElement().getStyle().getWidth());
+assertEquals(, content.getElement().getStyle().getHeight());
+
+// Add a widget to the DeckPanel
+deck.add(content);
+
+// Verify width/height.
+assertEquals(100%, content.getElement().getStyle().getWidth());
+assertEquals(100%, content.getElement().getStyle().getHeight());
+  }
+
+  /**
+   * Test that existing width/height is kept as is during add.
+   */
+  public void testWidgetKeepSizeOnAdd() {
+DeckPanel deck = new DeckPanel();
+RootPanel.get().add(deck);
+
+// Prepare widget, no width/height initially.
+Label content = new Label(content);
+DOM.setStyleAttribute(content.getElement(), width, 5cm);
+DOM.setStyleAttribute(content.getElement(), height, 30mm);
+
+// Add a widget to the DeckPanel
+deck.add(content);
+
+// Verify width/height.
+assertEquals(5cm,  
DOM.getStyleAttribute(content.getElement(), width));
+assertEquals(30mm,  
DOM.getStyleAttribute(content.getElement(), height));

+  }

   @Override
   protected DeckPanel createPanel() {


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


[gwt-contrib] [google-web-toolkit] r8502 committed - Change TextBox to LongBox in bikeshed examples

2010-08-07 Thread codesite-noreply

Revision: 8502
Author: gwt.mirror...@gmail.com
Date: Sat Aug  7 15:02:33 2010
Log: Change TextBox to LongBox in bikeshed examples

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

Modified:
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.ui.xml
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.ui.xml


===
---  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java	 
Wed Jul 28 16:39:40 2010
+++  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java	 
Sat Aug  7 15:02:33 2010

@@ -16,6 +16,7 @@
 package com.google.gwt.sample.expenses.gwt.ui.employee;

 import com.google.gwt.app.client.EditorSupport;
+import com.google.gwt.app.client.LongBox;
 import com.google.gwt.app.place.RecordEditView;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.DivElement;
@@ -53,7 +54,7 @@

   @UiField TextBox displayName;
   @UiField TextBox password;
-  @UiField TextBox supervisorKey;
+  @UiField LongBox supervisorKey;
   @UiField TextBox userName;
   @UiField Button cancel;
   @UiField Button save;
===
---  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.ui.xml	 
Mon Jun  7 12:20:31 2010
+++  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.ui.xml	 
Sat Aug  7 15:02:33 2010

@@ -1,6 +1,7 @@
 !DOCTYPE ui:UiBinder SYSTEM http://dl.google.com/gwt/DTD/xhtml.ent;
 ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
-  xmlns:g='urn:import:com.google.gwt.user.client.ui' 
+  xmlns:g='urn:import:com.google.gwt.user.client.ui'
+  xmlns:a='urn:import:com.google.gwt.app.client' 
   ui:style
 .fields {
   margin-top: 0.5em;
@@ -39,7 +40,7 @@
 table class='{style.fields}'
   trtddiv class='{style.label}'Display  
Name:/div/tdtdg:TextBox ui:field='displayName'/g:TextBox/td/tr
   trtddiv class='{style.label}'User  
Name:/div/tdtdg:TextBox ui:field='userName'/g:TextBox/td/tr
-  trtddiv class='{style.label}'Supervisor  
Key:/div/tdtdg:TextBox  
ui:field='supervisorKey'/g:TextBox/td/tr
+  trtddiv class='{style.label}'Supervisor  
Key:/div/tdtda:LongBox  
ui:field='supervisorKey'/a:LongBox/td/tr
   trtddiv  
class='{style.label}'Password:/div/tdtdg:PasswordTextBox  
ui:field='password'/g:PasswordTextBox/td/tr

 /table

===
---  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java	 
Wed Jul 28 16:39:40 2010
+++  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java	 
Sat Aug  7 15:02:33 2010

@@ -16,6 +16,7 @@
 package com.google.gwt.sample.expenses.gwt.ui.report;

 import com.google.gwt.app.client.EditorSupport;
+import com.google.gwt.app.client.LongBox;
 import com.google.gwt.app.place.RecordEditView;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.DivElement;
@@ -54,8 +55,8 @@

   @UiField TextBox notes;
   @UiField TextBox purpose;
-  @UiField TextBox reporterKey;
-  @UiField TextBox approvedSupervisorKey;
+  @UiField LongBox reporterKey;
+  @UiField LongBox approvedSupervisorKey;
   @UiField DateBox created;
   @UiField Button cancel;
   @UiField Button save;
===
---  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.ui.xml	 
Mon Jun  7 12:20:31 2010
+++  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.ui.xml	 
Sat Aug  7 11:59:28 2010

@@ -1,7 +1,8 @@
 !DOCTYPE ui:UiBinder SYSTEM http://dl.google.com/gwt/DTD/xhtml.ent;
 ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
   xmlns:g='urn:import:com.google.gwt.user.client.ui'
-  xmlns:d='urn:import:com.google.gwt.user.datepicker.client' 
+  xmlns:d='urn:import:com.google.gwt.user.datepicker.client'
+  xmlns:a='urn:import:com.google.gwt.app.client' 
   ui:style
 .fields {
   margin-top: 0.5em;
@@ -41,8 +42,8 @@
   trtddiv class='{style.label}'Purpose:/div/tdtdg:TextBox  
ui:field='purpose'/g:TextBox/td/tr
   trtddiv class='{style.label}'Notes:/div/tdtdg:TextBox  
ui:field='notes'/g:TextBox/td/tr
   trtddiv class='{style.label}'Created:/div/tdtdd:DateBox  
ui:field='created'/d:DateBox/td/tr
-  trtddiv class='{style.label}'Reporter  
Key:/div/tdtdg:TextBox ui:field='reporterKey'/g:TextBox/td/tr
-  trtddiv class='{style.label}'Approved Supervisor  
Key:/div/tdtdg:TextBox  
ui:field='approvedSupervisorKey'/g:TextBox/td/tr
+  trtddiv class='{style.label}'Reporter  
Key:/div/tdtda:LongBox ui:field='reporterKey'/a:LongBox/td/tr
+  trtddiv class='{style.label}'Approved Supervisor  

[gwt-contrib] Re: Fix datatype renderers to handle nulls properly for some primitive types. (issue725804)

2010-08-07 Thread rjrjr

As we discussed offline, I've tweaked this to render null as .
Submitting it that way, along with another fix to the scaffold's
ReportDetailsView to work around yet another report creation bug.

http://gwt-code-reviews.appspot.com/725804/show

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


[gwt-contrib] [google-web-toolkit] r8503 committed - Fix datatype renderers to handle nulls properly for some primitive...

2010-08-07 Thread codesite-noreply

Revision: 8503
Author: rj...@google.com
Date: Sat Aug  7 16:11:36 2010
Log: Fix datatype renderers to handle nulls properly for some primitive
types.  We now expect renderers to produce  for null, and parsers to
return null for .

Also works around a bug in report creation. The Created date is not be
set, and the details view cannot render a null date (because it
doesn't use renderers...). This puts us a bit out of sync with what
Roo is generating, but clears some roadblocks.

Review at http://gwt-code-reviews.appspot.com/725804

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

Modified:
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java

 /trunk/user/src/com/google/gwt/app/client/BooleanRenderer.java
 /trunk/user/src/com/google/gwt/app/client/DoubleRenderer.java
 /trunk/user/src/com/google/gwt/app/client/IntegerRenderer.java
 /trunk/user/src/com/google/gwt/app/client/LongRenderer.java
 /trunk/user/src/com/google/gwt/i18n/client/DateTimeFormatRenderer.java
 /trunk/user/src/com/google/gwt/text/shared/AbstractRenderer.java
 /trunk/user/src/com/google/gwt/text/shared/PassthroughRenderer.java

===
---  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java	 
Fri Aug  6 11:47:57 2010
+++  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java	 
Sat Aug  7 16:11:36 2010

@@ -20,7 +20,7 @@
 import com.google.gwt.dom.client.SpanElement;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.HasClickHandlers;
-import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.i18n.client.DateTimeFormatRenderer;
 import com.google.gwt.sample.expenses.gwt.request.ReportRecord;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
@@ -96,7 +96,7 @@
 this.record = record;
 purpose.setInnerText(record.getPurpose());
 notes.setInnerText(record.getNotes());
- 
created.setInnerText(DateTimeFormat.getShortDateFormat().format(record.getCreated()));
+created.setInnerText(new  
DateTimeFormatRenderer().render(record.getCreated()));

 idSpan.setInnerText(record.getId().toString());
 versionSpan.setInnerText(record.getVersion().toString());
 reporterKey.setInnerText(String.valueOf(record.getReporterKey()));
===
--- /trunk/user/src/com/google/gwt/app/client/BooleanRenderer.java	Thu Jun  
24 14:48:00 2010
+++ /trunk/user/src/com/google/gwt/app/client/BooleanRenderer.java	Sat Aug   
7 16:11:36 2010

@@ -42,6 +42,6 @@
   }

   public String render(Boolean object) {
-return String.valueOf(object);
+return toString(object);
   }
 }
===
--- /trunk/user/src/com/google/gwt/app/client/DoubleRenderer.java	Thu Jun  
24 14:48:00 2010
+++ /trunk/user/src/com/google/gwt/app/client/DoubleRenderer.java	Sat Aug   
7 16:11:36 2010

@@ -42,6 +42,6 @@
   }

   public String render(Double object) {
-return String.valueOf(object);
+return toString(object);
   }
 }
===
--- /trunk/user/src/com/google/gwt/app/client/IntegerRenderer.java	Thu Jun  
24 14:48:00 2010
+++ /trunk/user/src/com/google/gwt/app/client/IntegerRenderer.java	Sat Aug   
7 16:11:36 2010

@@ -42,6 +42,6 @@
   }

   public String render(Integer object) {
-return String.valueOf(object);
+return toString(object);
   }
 }
===
--- /trunk/user/src/com/google/gwt/app/client/LongRenderer.java	Thu Jun 24  
14:48:00 2010
+++ /trunk/user/src/com/google/gwt/app/client/LongRenderer.java	Sat Aug  7  
16:11:36 2010

@@ -42,6 +42,6 @@
   }

   public String render(Long object) {
-return String.valueOf(object);
+return toString(object);
   }
 }
===
--- /trunk/user/src/com/google/gwt/i18n/client/DateTimeFormatRenderer.java	 
Fri Jun 18 20:16:34 2010
+++ /trunk/user/src/com/google/gwt/i18n/client/DateTimeFormatRenderer.java	 
Sat Aug  7 16:11:36 2010

@@ -15,6 +15,7 @@
  */
 package com.google.gwt.i18n.client;

+import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
 import com.google.gwt.text.shared.AbstractRenderer;

 import java.util.Date;
@@ -26,16 +27,32 @@
   private final DateTimeFormat format;
   private final TimeZone timeZone;

+  /**
+   * Create an instance using {...@link PredefinedFormat#DATE_SHORT}
+   */
+  public DateTimeFormatRenderer() {
+this(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT));
+  }
+
+  /**
+   * Create an instance with the given format and the default time zone.
+   */
   public DateTimeFormatRenderer(DateTimeFormat format) {
 this(format, null);
   }

+  /**
+   * Create an instance with the given format and time zone.
+   */
   public DateTimeFormatRenderer(DateTimeFormat format, TimeZone timeZone) {
 this.format = format;
 this.timeZone = timeZone;
  

[gwt-contrib] Re: Hard coded History integration for the Scaffold app. This is step zero (issue717801)

2010-08-07 Thread rjrjr

http://gwt-code-reviews.appspot.com/717801/show

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