Tightened up datanucleus paths to include only **/domain/*.class
Merged over a few remaining changes from bikeshed
Review at http://gwt-code-reviews.appspot.com/776802
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8615 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/samples/common.ant.xml b/samples/common.ant.xml
index cfd0a47..d0342c7 100755
--- a/samples/common.ant.xml
+++ b/samples/common.ant.xml
@@ -43,6 +43,12 @@
<copy tofile="${sample.build}/pom.xml" file="pom.xml"/>
</then>
</if>
+ <if>
+ <available file="README-MAVEN.txt"/>
+ <then>
+ <copy tofile="${sample.build}/README-MAVEN.txt" file="README-MAVEN.txt"/>
+ </then>
+ </if>
</target>
<target name="compile" description="Compile all java files">
diff --git a/samples/expenses/README-MAVEN.txt b/samples/expenses/README-MAVEN.txt
new file mode 100644
index 0000000..2ef692d
--- /dev/null
+++ b/samples/expenses/README-MAVEN.txt
@@ -0,0 +1,69 @@
+--- Generated by GWT WebAppCreator ---
+
+Congratulations, you've successfully generated a starter project! What next?
+
+-- Option A: Import your project into Eclipse (recommended) --
+
+If you use Eclipse, you can simply import the generated project into Eclipse.
+We've tested against Eclipse 3.4 and 3.5. Later versions will likely also
+work, earlier versions may not.
+
+If the directory containing this file does not have a .classpath or .project
+file, generate them by running 'ant eclipse.generate'
+
+Eclipse users will need to have the m2eclipse, or equivalent, pluigin installed.
+Instructions for how to install the m2eclipse plugin can be found here:
+http://m2eclipse.sonatype.org/installing-m2eclipse.html
+
+Eclipse users will also want to run "mvn package" before importing into Eclipse.
+This will unpack the App Engine SDK to the local repository.
+
+In Eclipse, go to the File menu and choose:
+
+ File -> Import... -> Existing Maven Projects into Workspace
+
+ Browse to the directory containing this file,
+ select "Expenses".
+
+ Click Finish.
+
+You can now browse the project in Eclipse.
+
+To launch your web app in GWT development mode, go to the Project -> Properties
+and expand the Google menu item. From there:
+
+ Navigate to App Engine item, select "Use App Engine", and specify which App Engine
+ SDK to use.
+
+ Navigate to the Web Appliation item, select "This project has a WAR directory",
+ speicigy src/main/webapp, and uncheck "Launch and deploy...".
+
+ Navigate to Web Toolkit, select "use Google Web Toolkit", and specify which
+ GWT SDK you want to use.
+
+ Go to the Run menu item and select Run -> Debug as -> Web Application.
+
+ When prompted for which directory to run from, simply select the directory
+ that Eclipse defaults to.
+
+ You can now use the built-in debugger to debug your web app in development mode.
+
+If you supplied the junit path when invoking webAppCreator, you should see
+launch configurations for running your tests in development and production
+mode.
+
+-- Option B: Build from the command line with Maven --
+
+If you prefer to work from the command line, you can use Maven to build your
+project. (http://maven.apache.org/) Maven uses the supplied 'pom.xml' file
+which describes exactly how to build your project. This file has been tested
+to work against Ant 2.2.1. The following assumes 'mvn' is on your command
+line path.
+
+To run development mode, just type 'mvn gae:run'.
+
+To compile your project for deployment, just type 'mvn package'.
+
+For a full listing of other goals, visit:
+http://mojo.codehaus.org/gwt-maven-plugin/plugin-info.html
+
diff --git a/samples/expenses/pom.xml b/samples/expenses/pom.xml
index 9eac05b..39eca1a 100644
--- a/samples/expenses/pom.xml
+++ b/samples/expenses/pom.xml
@@ -49,7 +49,7 @@
</repository>
<repository>
<id>gwt-repo</id>
- <url>http://google-web-toolkit.googlecode.com/svn/2.1.0.M2/gwt/maven</url>
+ <url>http://google-web-toolkit.googlecode.com/svn/2.1.0.M3/gwt/maven</url>
<name>Google Web Toolkit Repository</name>
</repository>
</repositories>
@@ -65,7 +65,7 @@
</pluginRepository>
<pluginRepository>
<id>gwt-plugin-repo</id>
- <url>http://google-web-toolkit.googlecode.com/svn/2.1.0.M2/gwt/maven</url>
+ <url>http://google-web-toolkit.googlecode.com/svn/2.1.0.M3/gwt/maven</url>
<name>Google Web Toolkit Plugin Repository</name>
</pluginRepository>
</pluginRepositories>
@@ -601,7 +601,7 @@
<configuration>
<fork>false</fork>
<log4jConfiguration>${basedir}/src/main/resources/log4j.properties</log4jConfiguration>
- <mappingIncludes>**/*.class</mappingIncludes>
+ <mappingIncludes>**/domain/*.class</mappingIncludes>
<verbose>true</verbose>
<enhancerName>ASM</enhancerName>
<api>JPA</api>
@@ -650,9 +650,9 @@
<runTarget>/Expenses.html</runTarget>
<hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
<modules>
- <module>${project.groupId}.gwt.Expenses</module>
- <module>${project.groupId}.gwt.ExpensesMobile</module>
- <module>${project.groupId}.gwt.LoadExpensesDB</module>
+ <module>${project.groupId}.Expenses</module>
+ <module>${project.groupId}.ExpensesMobile</module>
+ <module>${project.groupId}.LoadExpensesDB</module>
</modules>
<server>com.google.appengine.tools.development.gwt.AppEngineLauncher</server>
<extraJvmArgs>-javaagent:${gae.home}/lib/agent/appengine-agent.jar -Xmx1024m</extraJvmArgs>
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseDetails.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseDetails.java
index 059e17a..dd05e26 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseDetails.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseDetails.java
@@ -71,7 +71,7 @@
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.valuestore.shared.SyncResult;
-import com.google.gwt.view.client.ListViewAdapter;
+import com.google.gwt.view.client.ListDataProvider;
import java.util.ArrayList;
import java.util.Collection;
@@ -409,9 +409,9 @@
private final Label errorPopupMessage = new Label();
/**
- * The adapter that provides expense items.
+ * The data provider that provides expense items.
*/
- private final ListViewAdapter<ExpenseRecord> items;
+ private final ListDataProvider<ExpenseRecord> items;
/**
* The set of Expense keys that we have seen. When a new key is added, we
@@ -449,10 +449,10 @@
public ExpenseDetails() {
createErrorPopup();
initWidget(uiBinder.createAndBindUi(this));
- items = new ListViewAdapter<ExpenseRecord>();
+ items = new ListDataProvider<ExpenseRecord>();
items.setKeyProvider(Expenses.EXPENSE_RECORD_KEY_PROVIDER);
table.setKeyProvider(items);
- items.addView(table);
+ items.addDataDisplay(table);
// Switch to edit notes.
notesEditLink.addClickHandler(new ClickHandler() {
@@ -899,7 +899,8 @@
// Cancel the timer since we are about to send a request.
refreshTimer.cancel();
lastReceiver = new Receiver<List<ExpenseRecord>>() {
- public void onSuccess(List<ExpenseRecord> newValues, Set<SyncResult> syncResults) {
+ public void onSuccess(
+ List<ExpenseRecord> newValues, Set<SyncResult> syncResults) {
if (this == lastReceiver) {
List<ExpenseRecord> list = new ArrayList<ExpenseRecord>(newValues);
sortExpenses(list, lastComparator);
@@ -932,7 +933,8 @@
}
};
expensesRequestFactory.expenseRequest().findExpensesByReport(
- report.getRef(Record.id)).forProperties(getExpenseColumns()).fire(lastReceiver);
+ report.getRef(Record.id)).forProperties(getExpenseColumns()).fire(
+ lastReceiver);
}
/**
@@ -954,15 +956,15 @@
ReportRecord editableReport = editRequest.edit(report);
editableReport.setNotes(pendingNotes);
editRequest.fire(new Receiver<Void>() {
- public void onSuccess(Void ignore, Set<SyncResult> response) {
- // We expect onReportChanged to be called if there are no errors.
- String errorMessage = getErrorMessageFromSync(response);
- if (errorMessage.length() > 0) {
- showErrorPopup(errorMessage);
- setNotesEditState(false, false, report.getNotes());
- }
- }
- });
+ public void onSuccess(Void ignore, Set<SyncResult> response) {
+ // We expect onReportChanged to be called if there are no errors.
+ String errorMessage = getErrorMessageFromSync(response);
+ if (errorMessage.length() > 0) {
+ showErrorPopup(errorMessage);
+ setNotesEditState(false, false, report.getNotes());
+ }
+ }
+ });
}
/**
@@ -1039,13 +1041,12 @@
editableRecord.setApproval(approval);
editableRecord.setReasonDenied(reasonDenied);
editRequest.fire(new Receiver<Void>() {
- public void onSuccess(Void ignore, Set<SyncResult> response) {
- String errorMessage = getErrorMessageFromSync(response);
- if (errorMessage.length() > 0) {
- syncCommit(
- record, errorMessage.length() > 0 ? errorMessage : null);
- }
- }
- });
+ public void onSuccess(Void ignore, Set<SyncResult> response) {
+ String errorMessage = getErrorMessageFromSync(response);
+ if (errorMessage.length() > 0) {
+ syncCommit(record, errorMessage.length() > 0 ? errorMessage : null);
+ }
+ }
+ });
}
}
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseList.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseList.java
index aa5e1d2..157b273 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseList.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseList.java
@@ -34,11 +34,11 @@
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.regexp.shared.RegExp;
import com.google.gwt.requestfactory.shared.Receiver;
+import com.google.gwt.sample.expenses.client.style.Styles;
import com.google.gwt.sample.expenses.client.request.EmployeeRecord;
import com.google.gwt.sample.expenses.client.request.ExpensesRequestFactory;
import com.google.gwt.sample.expenses.client.request.ReportRecord;
import com.google.gwt.sample.expenses.client.request.ReportRecordChanged;
-import com.google.gwt.sample.expenses.client.style.Styles;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiFactory;
import com.google.gwt.uibinder.client.UiField;
@@ -53,7 +53,7 @@
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.SyncResult;
-import com.google.gwt.view.client.AsyncListViewAdapter;
+import com.google.gwt.view.client.AsyncDataProvider;
import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.NoSelectionModel;
import com.google.gwt.view.client.Range;
@@ -201,11 +201,11 @@
}
/**
- * The adapter used to retrieve reports.
+ * The data provider used to retrieve reports.
*/
- private class ReportAdapter extends AsyncListViewAdapter<ReportRecord> {
+ private class ReportDataProvider extends AsyncDataProvider<ReportRecord> {
@Override
- protected void onRangeChanged(HasData<ReportRecord> view) {
+ protected void onRangeChanged(HasData<ReportRecord> display) {
requestReports(false);
}
}
@@ -283,9 +283,9 @@
private final List<Property<?>> reportColumns;
/**
- * The adapter that provides reports.
+ * The data provider that provides reports.
*/
- private final ReportAdapter reports = new ReportAdapter();
+ private final ReportDataProvider reports = new ReportDataProvider();
/**
* The factory used to send requests.
@@ -314,8 +314,8 @@
searchBox = new DefaultTextBox("search");
initWidget(uiBinder.createAndBindUi(this));
- // Add the view to the adapter.
- reports.addView(table);
+ // Add the view to the data provider.
+ reports.addDataDisplay(table);
// Listen for key events from the text boxes.
searchBox.addKeyUpHandler(new KeyUpHandler() {
@@ -352,7 +352,7 @@
if (record != null && changedId.equals(record.getId())) {
List<ReportRecord> changedList = new ArrayList<ReportRecord>();
changedList.add(changed);
- reports.updateViewData(i + table.getPageStart(), 1, changedList);
+ reports.updateRowData(i + table.getPageStart(), changedList);
}
i++;
}
@@ -390,7 +390,7 @@
@UiFactory
SimplePager createPager() {
SimplePager p = new SimplePager(TextLocation.RIGHT);
- p.setView(table);
+ p.setDisplay(table);
p.setRangeLimited(true);
return p;
}
@@ -471,14 +471,15 @@
final NoSelectionModel<ReportRecord> selectionModel = new NoSelectionModel<
ReportRecord>();
table.setSelectionModel(selectionModel);
- selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
- public void onSelectionChange(SelectionChangeEvent event) {
- Object selected = selectionModel.getLastSelectedObject();
- if (selected != null && listener != null) {
- listener.onReportSelected((ReportRecord) selected);
- }
- }
- });
+ selectionModel.addSelectionChangeHandler(
+ new SelectionChangeEvent.Handler() {
+ public void onSelectionChange(SelectionChangeEvent event) {
+ Object selected = selectionModel.getLastSelectedObject();
+ if (selected != null && listener != null) {
+ listener.onReportSelected((ReportRecord) selected);
+ }
+ }
+ });
// Spacer column.
table.addColumn(new Column<ReportRecord, String>(new TextCell()) {
@@ -577,7 +578,7 @@
if (this == lastDataSizeReceiver) {
int count = response.intValue();
// Treat count == 1000 as inexact due to AppEngine limitation
- reports.updateDataSize(count, count != 1000);
+ reports.updateRowCount(count, count != 1000);
}
}
};
@@ -593,10 +594,10 @@
int size = newValues.size();
if (size < table.getPageSize()) {
// Now we know the exact data size
- reports.updateDataSize(table.getPageStart() + size, true);
+ reports.updateRowCount(table.getPageStart() + size, true);
}
if (size > 0) {
- reports.updateViewData(table.getPageStart(), size, newValues);
+ reports.updateRowData(table.getPageStart(), newValues);
}
// Add the new keys to the known keys.
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml
index 5a6954d..aea7ece 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml
@@ -20,7 +20,8 @@
left: 75%;
right: 0%;
text-align: center;
- background-color: yellow;
+ background-color: white;
+ color: #7b8fae;
}
.title {
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileExpenseList.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileExpenseList.java
index ca70c27..447b382 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileExpenseList.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileExpenseList.java
@@ -1,12 +1,12 @@
/*
* Copyright 2010 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
@@ -26,7 +26,7 @@
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.SyncResult;
-import com.google.gwt.view.client.AsyncListViewAdapter;
+import com.google.gwt.view.client.AsyncDataProvider;
import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.NoSelectionModel;
import com.google.gwt.view.client.SelectionChangeEvent;
@@ -95,7 +95,7 @@
private final ExpensesRequestFactory requestFactory;
private final CellList<ExpenseRecord> expenseList;
- private final AsyncListViewAdapter<ExpenseRecord> expenseAdapter;
+ private final AsyncDataProvider<ExpenseRecord> expenseDataProvider;
private final NoSelectionModel<ExpenseRecord> expenseSelection;
/**
@@ -122,29 +122,31 @@
}
};
- public MobileExpenseList(final Listener listener,
- final ExpensesRequestFactory requestFactory) {
+ public MobileExpenseList(
+ final Listener listener, final ExpensesRequestFactory requestFactory) {
this.listener = listener;
this.requestFactory = requestFactory;
- expenseAdapter = new AsyncListViewAdapter<ExpenseRecord>() {
+ expenseDataProvider = new AsyncDataProvider<ExpenseRecord>() {
@Override
protected void onRangeChanged(HasData<ExpenseRecord> view) {
requestExpenses();
}
};
- expenseAdapter.setKeyProvider(Expenses.EXPENSE_RECORD_KEY_PROVIDER);
+ expenseDataProvider.setKeyProvider(Expenses.EXPENSE_RECORD_KEY_PROVIDER);
expenseList = new CellList<ExpenseRecord>(new ExpenseCell());
expenseSelection = new NoSelectionModel<ExpenseRecord>();
expenseList.setSelectionModel(expenseSelection);
- expenseSelection.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
- public void onSelectionChange(SelectionChangeEvent event) {
- listener.onExpenseSelected(expenseSelection.getLastSelectedObject());
- }
- });
+ expenseSelection.addSelectionChangeHandler(
+ new SelectionChangeEvent.Handler() {
+ public void onSelectionChange(SelectionChangeEvent event) {
+ listener.onExpenseSelected(
+ expenseSelection.getLastSelectedObject());
+ }
+ });
- expenseAdapter.addView(expenseList);
+ expenseDataProvider.addDataDisplay(expenseList);
initWidget(expenseList);
}
@@ -178,7 +180,7 @@
public void onRefresh(boolean clear) {
if (clear) {
- expenseAdapter.updateDataSize(0, true);
+ expenseDataProvider.updateRowCount(0, true);
}
requestExpenses();
}
@@ -206,11 +208,12 @@
return;
}
lastReceiver = new Receiver<List<ExpenseRecord>>() {
- public void onSuccess(List<ExpenseRecord> newValues, Set<SyncResult> syncResults) {
+ public void onSuccess(
+ List<ExpenseRecord> newValues, Set<SyncResult> syncResults) {
if (this == lastReceiver) {
int size = newValues.size();
- expenseAdapter.updateDataSize(size, true);
- expenseAdapter.updateViewData(0, size, newValues);
+ expenseDataProvider.updateRowCount(size, true);
+ expenseDataProvider.updateRowData(0, newValues);
// Add the new keys to the known keys.
boolean isInitialData = knownDeniedKeys == null;
@@ -218,12 +221,12 @@
knownDeniedKeys = new HashSet<Object>();
}
for (ExpenseRecord value : newValues) {
- Object key = expenseAdapter.getKey(value);
+ Object key = expenseDataProvider.getKey(value);
String approval = value.getApproval();
if (Expenses.Approval.DENIED.getText().equals(approval)) {
if (!isInitialData && !knownDeniedKeys.contains(key)) {
(new PhaseAnimation.CellListPhaseAnimation<ExpenseRecord>(
- expenseList, value, expenseAdapter)).run();
+ expenseList, value, expenseDataProvider)).run();
}
knownDeniedKeys.add(key);
} else {
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileReportList.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileReportList.java
index c27e1ec..ee59638 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileReportList.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileReportList.java
@@ -1,12 +1,12 @@
/*
* Copyright 2010 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
@@ -25,7 +25,7 @@
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.SyncResult;
-import com.google.gwt.view.client.AsyncListViewAdapter;
+import com.google.gwt.view.client.AsyncDataProvider;
import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.NoSelectionModel;
import com.google.gwt.view.client.SelectionChangeEvent;
@@ -57,7 +57,7 @@
private final EmployeeRecord employee;
private final Listener listener;
private final CellList<ReportRecord> reportList;
- private final AsyncListViewAdapter<ReportRecord> reportAdapter;
+ private final AsyncDataProvider<ReportRecord> reportDataProvider;
private final NoSelectionModel<ReportRecord> reportSelection;
private final ExpensesRequestFactory requestFactory;
@@ -66,31 +66,34 @@
this.listener = listener;
this.requestFactory = requestFactory;
this.employee = employee;
- reportAdapter = new AsyncListViewAdapter<ReportRecord>() {
+
+ reportDataProvider = new AsyncDataProvider<ReportRecord>() {
@Override
protected void onRangeChanged(HasData<ReportRecord> view) {
requestReports();
}
};
- reportAdapter.setKeyProvider(Expenses.REPORT_RECORD_KEY_PROVIDER);
+ reportDataProvider.setKeyProvider(Expenses.REPORT_RECORD_KEY_PROVIDER);
reportList = new CellList<ReportRecord>(new AbstractCell<ReportRecord>() {
@Override
- public void render(ReportRecord value, Object viewData, StringBuilder sb) {
+ public void render(
+ ReportRecord value, Object viewData, StringBuilder sb) {
sb.append("<div class='item'>" + value.getPurpose() + "</div>");
}
});
reportSelection = new NoSelectionModel<ReportRecord>();
reportSelection.setKeyProvider(Expenses.REPORT_RECORD_KEY_PROVIDER);
- reportSelection.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
- public void onSelectionChange(SelectionChangeEvent event) {
- listener.onReportSelected(reportSelection.getLastSelectedObject());
- }
- });
+ reportSelection.addSelectionChangeHandler(
+ new SelectionChangeEvent.Handler() {
+ public void onSelectionChange(SelectionChangeEvent event) {
+ listener.onReportSelected(reportSelection.getLastSelectedObject());
+ }
+ });
reportList.setSelectionModel(reportSelection);
- reportAdapter.addView(reportList);
+ reportDataProvider.addDataDisplay(reportList);
initWidget(reportList);
onRefresh(false);
@@ -125,7 +128,7 @@
public void onRefresh(boolean clear) {
if (clear) {
- reportAdapter.updateDataSize(0, true);
+ reportDataProvider.updateRowCount(0, true);
}
requestReports();
}
@@ -142,10 +145,11 @@
return;
}
lastReceiver = new Receiver<List<ReportRecord>>() {
- public void onSuccess(List<ReportRecord> newValues, Set<SyncResult> syncResults) {
+ public void onSuccess(
+ List<ReportRecord> newValues, Set<SyncResult> syncResults) {
int size = newValues.size();
- reportAdapter.updateDataSize(size, true);
- reportAdapter.updateViewData(0, size, newValues);
+ reportDataProvider.updateRowCount(size, true);
+ reportDataProvider.updateRowData(0, newValues);
}
};
requestFactory.reportRequest().findReportEntriesBySearch(employee.getId(), "",
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.java
index b8fea04..e73dda5 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.java
@@ -95,7 +95,7 @@
displayName.setInnerText(record.getDisplayName());
userName.setInnerText(record.getUserName());
password.setInnerText(record.getPassword());
- supervisor.setInnerText(String.valueOf(record.getSupervisor() == null ? null : record.getSupervisor().getId()));
+ supervisor.setInnerText(EmployeeRenderer.instance().render(record.getSupervisor()));
idSpan.setInnerText(record.getId().toString());
versionSpan.setInnerText(record.getVersion().toString());
}
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.ui.xml b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.ui.xml
index bc70a28..2f473d9 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.ui.xml
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeDetailsView.ui.xml
@@ -35,7 +35,7 @@
<table class='{style.fields}'>
<tr><td><div class='{style.label}'>Display Name:</div></td><td><span ui:field='displayName'></span></td></tr>
<tr><td><div class='{style.label}'>User Name:</div></td><td><span ui:field='userName'></span></td></tr>
- <tr><td><div class='{style.label}'>Supervisor Key:</div></td><td><span ui:field='supervisorKey'></span></td></tr>
+ <tr><td><div class='{style.label}'>Supervisor:</div></td><td><span ui:field='supervisor'></span></td></tr>
<tr><td><div class='{style.label}'>Password:</div></td><td><span ui:field='password'></span></td></tr>
</table>
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.java
index 5b130c3..16a2688 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.java
@@ -16,7 +16,6 @@
package com.google.gwt.sample.expenses.client.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;
@@ -32,10 +31,10 @@
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.valuestore.shared.Property;
+import com.google.gwt.user.client.ui.ValueListBox;
+import java.util.Collection;
import java.util.Map;
-import java.util.Set;
/**
* Edit view for employee records.
@@ -51,18 +50,31 @@
private static final Binder BINDER = GWT.create(Binder.class);
private static final DataBinder DATA_BINDER = GWT.create(DataBinder.class);
- @UiField TextBox displayName;
- @UiField TextBox password;
- @UiField LongBox supervisorKey;
- @UiField TextBox userName;
- @UiField Button cancel;
- @UiField Button save;
- @UiField InlineLabel id;
- @UiField InlineLabel version;
- @UiField DivElement errors;
-
- @UiField Element editTitle;
- @UiField Element createTitle;
+ @UiField
+ TextBox displayName;
+ @UiField
+ TextBox password;
+ @UiField(provided = true)
+ ValueListBox<EmployeeRecord> supervisor = new ValueListBox<EmployeeRecord>(
+ EmployeeRenderer.instance());
+
+ @UiField
+ TextBox userName;
+ @UiField
+ Button cancel;
+ @UiField
+ Button save;
+ @UiField
+ InlineLabel id;
+ @UiField
+ InlineLabel version;
+ @UiField
+ DivElement errors;
+
+ @UiField
+ Element editTitle;
+ @UiField
+ Element createTitle;
private Delegate delegate;
private EmployeeRecord record;
@@ -76,8 +88,8 @@
return this;
}
- public Set<Property<?>> getProperties() {
- return DATA_BINDER.getProperties();
+ public String[] getPaths() {
+ return DATA_BINDER.getPaths();
}
public EmployeeRecord getValue() {
@@ -102,6 +114,10 @@
this.delegate = delegate;
}
+ public void setEmployeePickerValues(Collection<EmployeeRecord> values) {
+ supervisor.setAcceptableValues(values);
+ }
+
public void setEnabled(boolean enabled) {
DATA_BINDER.setEnabled(this, enabled);
save.setEnabled(enabled);
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.ui.xml b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.ui.xml
index ccfba3e..1f836af 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.ui.xml
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeEditView.ui.xml
@@ -40,7 +40,7 @@
<table class='{style.fields}'>
<tr><td><div class='{style.label}'>Display Name:</div></td><td><g:TextBox ui:field='displayName'></g:TextBox></td></tr>
<tr><td><div class='{style.label}'>User Name:</div></td><td><g:TextBox ui:field='userName'></g:TextBox></td></tr>
- <tr><td><div class='{style.label}'>Supervisor Key:</div></td><td><a:LongBox ui:field='supervisorKey'></a:LongBox></td></tr>
+ <tr><td><div class='{style.label}'>Supervisor:</div></td><td><g:ValueListBox ui:field='supervisor'></g:ValueListBox></td></tr>
<tr><td><div class='{style.label}'>Password:</div></td><td><g:PasswordTextBox ui:field='password'></g:PasswordTextBox></td></tr>
</table>
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java
index 5e545f5..b94784b 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java
@@ -15,7 +15,6 @@
*/
package com.google.gwt.sample.expenses.client.ui.employee;
-import com.google.gwt.app.client.ProxyIdRenderer;
import com.google.gwt.app.place.AbstractRecordListView;
import com.google.gwt.app.place.PropertyColumn;
import com.google.gwt.core.client.GWT;
@@ -51,10 +50,14 @@
List<PropertyColumn<EmployeeRecord, ?>> columns = new ArrayList<PropertyColumn<EmployeeRecord, ?>>();
columns.add(PropertyColumn.<EmployeeRecord> getStringPropertyColumn(EmployeeRecord.userName));
+
columns.add(PropertyColumn.<EmployeeRecord> getStringPropertyColumn(EmployeeRecord.displayName));
+
columns.add(PropertyColumn.<EmployeeRecord> getStringPropertyColumn(EmployeeRecord.password));
+
columns.add(new PropertyColumn<EmployeeRecord, EmployeeRecord>(
- EmployeeRecord.supervisor, ProxyIdRenderer.<EmployeeRecord>instance()));
+ EmployeeRecord.supervisor, EmployeeRenderer.instance()));
+
return columns;
}
}
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.ui.xml b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.ui.xml
index 50d9d31..f99a54b 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.ui.xml
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.ui.xml
@@ -50,7 +50,7 @@
<c:CellTable width='100%' ui:field='table' pageSize='8'/>
<div class='{style.controls}'>
<g:Button styleName='{style.createButton}' ui:field='newButton'>Create Employee</g:Button>
- <c:SimplePager view='{table}' location='RIGHT'/>
+ <c:SimplePager display='{table}' location='RIGHT'/>
</div>
</g:HTMLPanel>
</ui:UiBinder>
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeRenderer.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeRenderer.java
new file mode 100644
index 0000000..be6c5eb
--- /dev/null
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeRenderer.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2010 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.
+ */
+package com.google.gwt.sample.expenses.client.ui.employee;
+
+import com.google.gwt.app.place.ProxyRenderer;
+import com.google.gwt.sample.expenses.client.request.EmployeeRecord;
+
+/**
+ * Renders {@link EmployeeRecord}s for display to the user. Requires the
+ * displayName property to have been fetched.
+ */
+public class EmployeeRenderer extends ProxyRenderer<EmployeeRecord> {
+ private static EmployeeRenderer INSTANCE;
+
+ public static EmployeeRenderer instance() {
+ if (INSTANCE == null) {
+ INSTANCE = new EmployeeRenderer();
+ }
+
+ return INSTANCE;
+ }
+
+ protected EmployeeRenderer() {
+ super(new String[] { "displayName"} );
+ }
+
+ public String render(EmployeeRecord object) {
+ if (object == null) {
+ return "";
+ }
+ return object.getDisplayName() + " (" + object.getId() + ")";
+ }
+}
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportDetailsView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportDetailsView.java
index 7740ffc..ec362aa 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportDetailsView.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportDetailsView.java
@@ -22,6 +22,7 @@
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.i18n.client.DateTimeFormatRenderer;
import com.google.gwt.sample.expenses.client.request.ReportRecord;
+import com.google.gwt.sample.expenses.client.ui.employee.EmployeeRenderer;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
@@ -99,7 +100,7 @@
created.setInnerText(new DateTimeFormatRenderer().render(record.getCreated()));
idSpan.setInnerText(record.getId().toString());
versionSpan.setInnerText(record.getVersion().toString());
- reporterKey.setInnerText(String.valueOf(record.getReporter()));
- approvedSupervisorKey.setInnerText(String.valueOf(record.getApprovedSupervisor()));
+ reporterKey.setInnerText(EmployeeRenderer.instance().render(record.getReporter()));
+ approvedSupervisorKey.setInnerText(EmployeeRenderer.instance().render(record.getApprovedSupervisor()));
}
}
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.java
index a41f57e..0996f6f 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.java
@@ -16,14 +16,15 @@
package com.google.gwt.sample.expenses.client.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;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.sample.expenses.client.request.EmployeeRecord;
import com.google.gwt.sample.expenses.client.request.ReportRecord;
+import com.google.gwt.sample.expenses.client.ui.employee.EmployeeRenderer;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
@@ -32,11 +33,11 @@
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.ValueListBox;
import com.google.gwt.user.datepicker.client.DateBox;
-import com.google.gwt.valuestore.shared.Property;
+import java.util.Collection;
import java.util.Map;
-import java.util.Set;
/**
* Edit view for employee records.
@@ -54,8 +55,10 @@
@UiField TextBox notes;
@UiField TextBox purpose;
- @UiField LongBox reporterKey;
- @UiField LongBox approvedSupervisorKey;
+ @UiField(provided = true) ValueListBox<EmployeeRecord> reporter =
+ new ValueListBox<EmployeeRecord>(EmployeeRenderer.instance());
+ @UiField(provided = true) ValueListBox<EmployeeRecord> approvedSupervisor =
+ new ValueListBox<EmployeeRecord>(EmployeeRenderer.instance());
@UiField DateBox created;
@UiField Button cancel;
@UiField Button save;
@@ -68,18 +71,18 @@
private Delegate delegate;
private ReportRecord record;
-
+
public ReportEditView() {
initWidget(BINDER.createAndBindUi(this));
DATA_BINDER.init(this);
}
-
+
public ReportEditView asWidget() {
return this;
}
- public Set<Property<?>> getProperties() {
- return DATA_BINDER.getProperties();
+ public String[] getPaths() {
+ return DATA_BINDER.getPaths();
}
public ReportRecord getValue() {
@@ -104,6 +107,11 @@
this.delegate = delegate;
}
+ public void setEmployeePickerValues(Collection<EmployeeRecord> values) {
+ approvedSupervisor.setAcceptableValues(values);
+ reporter.setAcceptableValues(values);
+ }
+
public void setEnabled(boolean enabled) {
DATA_BINDER.setEnabled(this, enabled);
save.setEnabled(enabled);
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.ui.xml b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.ui.xml
index 2120839..98c8743 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.ui.xml
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportEditView.ui.xml
@@ -42,8 +42,8 @@
<tr><td><div class='{style.label}'>Purpose:</div></td><td><g:TextBox ui:field='purpose'></g:TextBox></td></tr>
<tr><td><div class='{style.label}'>Notes:</div></td><td><g:TextBox ui:field='notes'></g:TextBox></td></tr>
<tr><td><div class='{style.label}'>Created:</div></td><td><d:DateBox ui:field='created'></d:DateBox></td></tr>
- <tr><td><div class='{style.label}'>Reporter Key:</div></td><td><a:LongBox ui:field='reporterKey'></a:LongBox></td></tr>
- <tr><td><div class='{style.label}'>Approved Supervisor Key:</div></td><td><a:LongBox ui:field='approvedSupervisorKey'></a:LongBox></td></tr>
+ <tr><td><div class='{style.label}'>Reporter:</div></td><td><g:ValueListBox ui:field='reporter'></g:ValueListBox></td></tr>
+ <tr><td><div class='{style.label}'>Approved Supervisor:</div></td><td><g:ValueListBox ui:field='approvedSupervisor'></g:ValueListBox></td></tr>
</table>
<div class='{style.bar}'>
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java
index 8713269..ba66572 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java
@@ -15,7 +15,6 @@
*/
package com.google.gwt.sample.expenses.client.ui.report;
-import com.google.gwt.app.client.ProxyIdRenderer;
import com.google.gwt.app.place.AbstractRecordListView;
import com.google.gwt.app.place.PropertyColumn;
import com.google.gwt.core.client.GWT;
@@ -23,6 +22,7 @@
import com.google.gwt.i18n.client.DateTimeFormatRenderer;
import com.google.gwt.sample.expenses.client.request.EmployeeRecord;
import com.google.gwt.sample.expenses.client.request.ReportRecord;
+import com.google.gwt.sample.expenses.client.ui.employee.EmployeeRenderer;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.cellview.client.CellTable;
@@ -58,11 +58,15 @@
columns.add(new PropertyColumn<ReportRecord, Date>(ReportRecord.created,
new DateTimeFormatRenderer(DateTimeFormat.getShortDateFormat())));
+
columns.add(PropertyColumn.<ReportRecord> getStringPropertyColumn(ReportRecord.purpose));
+
columns.add(new PropertyColumn<ReportRecord, EmployeeRecord>(
- ReportRecord.reporter, ProxyIdRenderer.<EmployeeRecord>instance()));
+ ReportRecord.reporter, EmployeeRenderer.instance()));
+
columns.add(new PropertyColumn<ReportRecord, EmployeeRecord>(
- ReportRecord.approvedSupervisor, ProxyIdRenderer.<EmployeeRecord>instance()));
+ ReportRecord.approvedSupervisor, EmployeeRenderer.instance()));
+
return columns;
}
}
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.ui.xml b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.ui.xml
index 2e3bf9c..34d5bd1 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.ui.xml
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.ui.xml
@@ -49,7 +49,7 @@
<c:CellTable width='100%' ui:field='table' pageSize='8'/>
<div class='{style.controls}'>
<g:Button styleName='{style.createButton}' ui:field='newButton'>Create Report</g:Button>
- <c:SimplePager view='{table}' location='RIGHT'/>
+ <c:SimplePager display='{table}' location='RIGHT'/>
</div>
</g:HTMLPanel>
</ui:UiBinder>
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java
index ac574e1..5f28680 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java
@@ -437,6 +437,10 @@
}
}
+ public void setApprovedSupervisor(Employee reporter) {
+ approvedSupervisorKey = reporter == null ? null : reporter.getId();
+ }
+
public void setApprovedSupervisorKey(Long approvedSupervisorKey) {
this.approvedSupervisorKey = approvedSupervisorKey;
}