Revision: 10264
Author:   [email protected]
Date:     Wed Jun  1 11:32:36 2011
Log: Upgrading DynaTableRf and MobileWebApp to use DataGrid. The apps look identical, except that scrolling the table no longer scrolls the column headers out of view.

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

Review by: [email protected]
http://code.google.com/p/google-web-toolkit/source/detail?r=10264

Added:
/trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/DataGridPatch.css
Modified:
/trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.java /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.ui.xml /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/TimeSlotListWidget.java /trunk/samples/mobilewebapp/src/main/java/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.java /trunk/samples/mobilewebapp/src/main/java/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.ui.xml

=======================================
--- /dev/null
+++ /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/DataGridPatch.css Wed Jun 1 11:32:36 2011
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+/*
+ * This file is used by SummaryWidget to patch the CSS styles used in DataGrid. + * The style rules defined in this file are appended to the default styles in + * DataGrid's CssResource. If there are conflicts, the styles defined in this + * file take precedence over the defaults because these styles appear after the
+ * default styles.
+ */
+.dataGridCell {
+  cursor: pointer;
+}
=======================================
--- /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.java Mon Apr 18 13:47:45 2011 +++ /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.java Wed Jun 1 11:32:36 2011
@@ -35,8 +35,8 @@
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.uibinder.client.UiHandler;
-import com.google.gwt.user.cellview.client.CellTable;
 import com.google.gwt.user.cellview.client.Column;
+import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
 import com.google.gwt.user.cellview.client.SimplePager;
 import com.google.gwt.user.client.ui.Composite;
@@ -66,9 +66,10 @@
   interface Style extends CssResource {
   }

-  interface TableResources extends CellTable.Resources {
-    @Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
-    CellTable.Style cellTableStyle();
+  interface TableResources extends DataGrid.Resources {
+    @Override
+    @Source(value = {DataGrid.Style.DEFAULT_CSS, "DataGridPatch.css"})
+    DataGrid.Style dataGridStyle();
   }

   private class DescriptionColumn extends Column<PersonProxy, String> {
@@ -111,7 +112,7 @@
   SimplePager pager = new SimplePager();

   @UiField(provided = true)
-  CellTable<PersonProxy> table;
+  DataGrid<PersonProxy> table;

   private final EventBus eventBus;
   private List<Boolean> filter = new ArrayList<Boolean>(ALL_DAYS);
@@ -127,11 +128,9 @@
     this.requestFactory = requestFactory;
     this.numRows = numRows;

-    table = new CellTable<PersonProxy>(numRows,
+    table = new DataGrid<PersonProxy>(numRows,
         GWT.<TableResources> create(TableResources.class));
     initWidget(GWT.<Binder> create(Binder.class).createAndBindUi(this));
- dock.getWidgetContainerElement(table).getStyle().setProperty("overflowY",
-        "visible");

     Column<PersonProxy, String> nameColumn = new NameColumn();
     table.addColumn(nameColumn, "Name");
@@ -146,17 +145,20 @@

     EntityProxyChange.registerForProxyType(eventBus, PersonProxy.class,
         new EntityProxyChange.Handler<PersonProxy>() {
+          @Override
           public void onProxyChange(EntityProxyChange<PersonProxy> event) {
             SummaryWidget.this.onPersonChanged(event);
           }
         });

     FilterChangeEvent.register(eventBus, new FilterChangeEvent.Handler() {
+      @Override
       public void onFilterChanged(FilterChangeEvent e) {
         filter.set(e.getDay(), e.isSelected());
         if (!pending) {
           pending = true;
           Scheduler.get().scheduleFinally(new ScheduledCommand() {
+            @Override
             public void execute() {
               pending = false;
               fetch(0);
@@ -167,6 +169,7 @@
     });

selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
+      @Override
       public void onSelectionChange(SelectionChangeEvent event) {
         SummaryWidget.this.refreshSelection();
       }
@@ -255,7 +258,7 @@
   }

   private int offsetOf(EntityProxyId<PersonProxy> personId) {
-    List<PersonProxy> displayedItems = table.getDisplayedItems();
+    List<PersonProxy> displayedItems = table.getVisibleItems();
     for (int offset = 0, j = displayedItems.size(); offset < j; offset++) {
       if (personId.equals(displayedItems.get(offset).stableId())) {
         return offset;
=======================================
--- /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.ui.xml Fri Jan 7 10:19:06 2011 +++ /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.ui.xml Wed Jun 1 11:32:36 2011
@@ -30,7 +30,7 @@
       </g:DockLayoutPanel>
     </g:north>
     <g:center>
-      <cv:CellTable ui:field="table" stylePrimaryName="{style.table}" />
+      <cv:DataGrid ui:field="table" stylePrimaryName="{style.table}" />
     </g:center>
   </g:DockLayoutPanel>
 </ui:UiBinder>
=======================================
--- /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/TimeSlotListWidget.java Tue Apr 5 10:47:39 2011 +++ /trunk/samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/TimeSlotListWidget.java Wed Jun 1 11:32:36 2011
@@ -20,7 +20,6 @@
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.editor.client.EditorDelegate;
 import com.google.gwt.editor.client.ValueAwareEditor;
-import com.google.gwt.sample.dynatablerf.client.widgets.SummaryWidget.TableResources;
 import com.google.gwt.sample.dynatablerf.shared.DynaTableRequestFactory;
import com.google.gwt.sample.dynatablerf.shared.DynaTableRequestFactory.ScheduleRequest;
 import com.google.gwt.sample.dynatablerf.shared.TimeSlotProxy;
@@ -44,6 +43,12 @@
  */
public class TimeSlotListWidget extends Composite implements ValueAwareEditor<List<TimeSlotProxy>> {

+  interface TableResources extends CellTable.Resources {
+    @Override
+    @Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
+    CellTable.Style cellTableStyle();
+  }
+
interface TimeSlotListWidgetUiBinder extends UiBinder<Widget, TimeSlotListWidget> {
   }

@@ -202,6 +207,7 @@
           columnDay = day;
         }

+        @Override
         public void update(int index, ScheduleRow row, String value) {
           if (acceptClicks) {
             row.toggleInUse(columnDay);
@@ -219,6 +225,7 @@
     initWidget(uiBinder.createAndBindUi(this));
   }

+  @Override
   public void flush() {
HashMap<TimeSlotProxy, TimeSlotKey> index = new HashMap<TimeSlotProxy, TimeSlotKey>();

@@ -238,12 +245,15 @@
     }
   }

+  @Override
   public void onPropertyChange(String... paths) {
   }

+  @Override
   public void setDelegate(EditorDelegate<List<TimeSlotProxy>> delegate) {
   }

+  @Override
   public void setValue(List<TimeSlotProxy> value) {
     backing = value;
     currentSchedule = new HashSet<TimeSlotKey>();
=======================================
--- /trunk/samples/mobilewebapp/src/main/java/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.java Wed Jun 1 07:45:02 2011 +++ /trunk/samples/mobilewebapp/src/main/java/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.java Wed Jun 1 11:32:36 2011
@@ -16,17 +16,13 @@
 package com.google.gwt.sample.mobilewebapp.client.desktop;

 import com.google.gwt.cell.client.DateCell;
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.sample.mobilewebapp.client.activity.TaskListView;
 import com.google.gwt.sample.mobilewebapp.shared.TaskProxy;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.cellview.client.CellTable;
 import com.google.gwt.user.cellview.client.Column;
+import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
 import com.google.gwt.user.cellview.client.TextColumn;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.ResizeComposite;
 import com.google.gwt.view.client.NoSelectionModel;
 import com.google.gwt.view.client.SelectionChangeEvent;
 import com.google.gwt.view.client.SelectionModel;
@@ -37,25 +33,12 @@
 /**
  * View used to display the list of Tasks.
  */
-public class DesktopTaskListView extends Composite implements TaskListView {
-
-  /**
-   * The UiBinder interface.
-   */
- interface DesktopTaskListViewUiBinder extends UiBinder<Widget, DesktopTaskListView> {
-  }
-
-  /**
-   * The UiBinder used to generate the view.
-   */
-  private static DesktopTaskListViewUiBinder uiBinder =
-      GWT.create(DesktopTaskListViewUiBinder.class);
+public class DesktopTaskListView extends ResizeComposite implements TaskListView {

   /**
    * Displays the list of tasks.
    */
-  @UiField(provided = true)
-  CellTable<TaskProxy> taskList;
+  DataGrid<TaskProxy> taskList;

   /**
    * The presenter for this view.
@@ -68,7 +51,7 @@
   public DesktopTaskListView() {

     // Create the CellTable.
-    taskList = new CellTable<TaskProxy>();
+    taskList = new DataGrid<TaskProxy>();
     taskList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
     taskList.setWidth("100%");

@@ -105,6 +88,7 @@
final NoSelectionModel<TaskProxy> selectionModel = new NoSelectionModel<TaskProxy>();
     taskList.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
+      @Override
       public void onSelectionChange(SelectionChangeEvent event) {
         // Edit the task.
         if (presenter != null) {
@@ -114,13 +98,15 @@
     });

     // Initialize the widget.
-    initWidget(uiBinder.createAndBindUi(this));
+    initWidget(taskList);
   }

+  @Override
   public void clearList() {
     taskList.setVisibleRangeAndClearData(taskList.getVisibleRange(), true);
   }

+  @Override
   public void setPresenter(Presenter presenter) {
     this.presenter = presenter;
   }
@@ -129,6 +115,7 @@
     taskList.setSelectionModel(selectionModel);
   }

+  @Override
   public void setTasks(List<TaskProxy> tasks) {
     taskList.setRowData(tasks);
   }
=======================================
--- /trunk/samples/mobilewebapp/src/main/java/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.ui.xml Wed Jun 1 07:45:02 2011 +++ /trunk/samples/mobilewebapp/src/main/java/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskListView.ui.xml Wed Jun 1 11:32:36 2011
@@ -9,7 +9,7 @@
   </ui:style>

   <g:ScrollPanel>
-    <c:CellTable
+    <c:DataGrid
       ui:field="taskList" />
   </g:ScrollPanel>

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

Reply via email to