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