Introduces com.google.gwt.text from bikeshed, along with changes in
com.google.gwt.user.client.ui to take advantage of it. This is another
step toward getting rid of the bikeshed.
Note in particular the new TextBox-like widget ValueBox, which
required refactoring a new abstract superclass ValueBoxBase out of
TextBoxBase.
A smaller change to note is the introduction of TakesValue as a
slimmer super-interface for HasValue which doesn't require being an
event source. The Editor framework is expected to take advantage of
this, although that may still change a bit.
Items that are still half-baked (IsWidget, BooleanParser,
BooleanValueBox, etc.) have been moved to com.google.gwt.app rather
than text or user. This required moving some classes (e.g. the various
Record*View interfaces) from valuestore to app, to avoid cirular
dependencies.
Review at http://gwt-code-reviews.appspot.com/649801
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8285 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/bikeshed/scripts/maven_script.sh b/bikeshed/scripts/maven_script.sh
old mode 100644
new mode 100755
diff --git a/bikeshed/src/com/google/gwt/input/shared/BooleanParser.java b/bikeshed/src/com/google/gwt/app/client/BooleanParser.java
similarity index 69%
rename from bikeshed/src/com/google/gwt/input/shared/BooleanParser.java
rename to bikeshed/src/com/google/gwt/app/client/BooleanParser.java
index 7d4a905..d9f064c 100644
--- a/bikeshed/src/com/google/gwt/input/shared/BooleanParser.java
+++ b/bikeshed/src/com/google/gwt/app/client/BooleanParser.java
@@ -13,10 +13,16 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.Parser;
/**
- * A no-op renderer.
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * An unlocalized simple parser based on {@link Boolean#valueOf}.
*/
public class BooleanParser implements Parser<Boolean> {
@@ -35,7 +41,7 @@
protected BooleanParser() {
}
- public Boolean parse(String object) {
- return Boolean.valueOf(object);
+ public Boolean parse(CharSequence object) {
+ return Boolean.valueOf(object.toString());
}
}
diff --git a/bikeshed/src/com/google/gwt/input/shared/BooleanRenderer.java b/bikeshed/src/com/google/gwt/app/client/BooleanRenderer.java
similarity index 69%
rename from bikeshed/src/com/google/gwt/input/shared/BooleanRenderer.java
rename to bikeshed/src/com/google/gwt/app/client/BooleanRenderer.java
index 86168f4..c8a2695 100644
--- a/bikeshed/src/com/google/gwt/input/shared/BooleanRenderer.java
+++ b/bikeshed/src/com/google/gwt/app/client/BooleanRenderer.java
@@ -13,12 +13,19 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.AbstractRenderer;
+import com.google.gwt.text.shared.Renderer;
/**
- * Renderer of Boolean values.
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * Simple unlocalized renderer of Boolean values.
*/
-public class BooleanRenderer implements Renderer<Boolean> {
+public class BooleanRenderer extends AbstractRenderer<Boolean> {
private static BooleanRenderer INSTANCE;
/**
diff --git a/bikeshed/src/com/google/gwt/app/client/CellListPlacePickerView.java b/bikeshed/src/com/google/gwt/app/client/CellListPlacePickerView.java
index 5f455d2..6de1206 100644
--- a/bikeshed/src/com/google/gwt/app/client/CellListPlacePickerView.java
+++ b/bikeshed/src/com/google/gwt/app/client/CellListPlacePickerView.java
@@ -18,7 +18,7 @@
import com.google.gwt.app.place.Place;
import com.google.gwt.app.place.PlacePickerView;
import com.google.gwt.cell.client.AbstractCell;
-import com.google.gwt.input.shared.Renderer;
+import com.google.gwt.text.shared.Renderer;
import com.google.gwt.user.cellview.client.CellList;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.view.client.SingleSelectionModel;
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/DoubleBox.java b/bikeshed/src/com/google/gwt/app/client/DoubleBox.java
similarity index 78%
rename from bikeshed/src/com/google/gwt/user/client/ui/DoubleBox.java
rename to bikeshed/src/com/google/gwt/app/client/DoubleBox.java
index d7e2b7f..43ab5cf 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/DoubleBox.java
+++ b/bikeshed/src/com/google/gwt/app/client/DoubleBox.java
@@ -13,13 +13,16 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.user.client.ui;
+package com.google.gwt.app.client;
import com.google.gwt.dom.client.Document;
-import com.google.gwt.input.shared.DoubleParser;
-import com.google.gwt.input.shared.DoubleRenderer;
+import com.google.gwt.user.client.ui.ValueBox;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* A ValueBox that uses {@link DoubleParser} and {@link DoubleRenderer}.
*/
public class DoubleBox extends ValueBox<Double> {
diff --git a/bikeshed/src/com/google/gwt/input/shared/DoubleParser.java b/bikeshed/src/com/google/gwt/app/client/DoubleParser.java
similarity index 61%
rename from bikeshed/src/com/google/gwt/input/shared/DoubleParser.java
rename to bikeshed/src/com/google/gwt/app/client/DoubleParser.java
index 9c6d651..b9f3e14 100644
--- a/bikeshed/src/com/google/gwt/input/shared/DoubleParser.java
+++ b/bikeshed/src/com/google/gwt/app/client/DoubleParser.java
@@ -1,27 +1,35 @@
/*
* 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.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.Parser;
+
+import java.text.ParseException;
/**
- * A no-op renderer.
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * Simple unlocalized parser of Double that wraps {@link Double#valueOf(String)}.
*/
public class DoubleParser implements Parser<Double> {
private static DoubleParser INSTANCE;
-
+
/**
* @return the instance of the no-op renderer
*/
@@ -31,15 +39,15 @@
}
return INSTANCE;
}
-
+
protected DoubleParser() {
}
- public Double parse(String object) {
+ public Double parse(CharSequence object) throws ParseException {
try {
- return Double.valueOf(object);
- } catch (NumberFormatException e) {
- throw new ParseException(e);
+ return Double.valueOf(object.toString());
+ } catch (NumberFormatException e) {
+ throw new ParseException(e.getMessage(), 0);
}
}
}
diff --git a/bikeshed/src/com/google/gwt/input/shared/DoubleRenderer.java b/bikeshed/src/com/google/gwt/app/client/DoubleRenderer.java
similarity index 69%
rename from bikeshed/src/com/google/gwt/input/shared/DoubleRenderer.java
rename to bikeshed/src/com/google/gwt/app/client/DoubleRenderer.java
index 6cb9936..9ceaf21 100644
--- a/bikeshed/src/com/google/gwt/input/shared/DoubleRenderer.java
+++ b/bikeshed/src/com/google/gwt/app/client/DoubleRenderer.java
@@ -13,12 +13,19 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.AbstractRenderer;
+import com.google.gwt.text.shared.Renderer;
/**
- * Renderer of Long values.
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * A simple unlocalized renderer of Long values.
*/
-public class DoubleRenderer implements Renderer<Double> {
+public class DoubleRenderer extends AbstractRenderer<Double> {
private static DoubleRenderer INSTANCE;
/**
diff --git a/bikeshed/src/com/google/gwt/app/client/EditorSupport.java b/bikeshed/src/com/google/gwt/app/client/EditorSupport.java
index 7b3bbd0..fb26b55 100644
--- a/bikeshed/src/com/google/gwt/app/client/EditorSupport.java
+++ b/bikeshed/src/com/google/gwt/app/client/EditorSupport.java
@@ -15,9 +15,9 @@
*/
package com.google.gwt.app.client;
+import com.google.gwt.app.place.RecordEditView;
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.Record;
-import com.google.gwt.valuestore.ui.RecordEditView;
import java.util.Map;
import java.util.Set;
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/IntegerBox.java b/bikeshed/src/com/google/gwt/app/client/IntegerBox.java
similarity index 78%
rename from bikeshed/src/com/google/gwt/user/client/ui/IntegerBox.java
rename to bikeshed/src/com/google/gwt/app/client/IntegerBox.java
index e120918..3e762ff 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/IntegerBox.java
+++ b/bikeshed/src/com/google/gwt/app/client/IntegerBox.java
@@ -13,13 +13,16 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.user.client.ui;
+package com.google.gwt.app.client;
import com.google.gwt.dom.client.Document;
-import com.google.gwt.input.shared.IntegerParser;
-import com.google.gwt.input.shared.IntegerRenderer;
+import com.google.gwt.user.client.ui.ValueBox;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* A ValueBox that uses {@link IntegerParser} and {@link IntegerRenderer}.
*/
public class IntegerBox extends ValueBox<Integer> {
diff --git a/bikeshed/src/com/google/gwt/input/shared/IntegerParser.java b/bikeshed/src/com/google/gwt/app/client/IntegerParser.java
similarity index 65%
rename from bikeshed/src/com/google/gwt/input/shared/IntegerParser.java
rename to bikeshed/src/com/google/gwt/app/client/IntegerParser.java
index e7338fc..43751da 100644
--- a/bikeshed/src/com/google/gwt/input/shared/IntegerParser.java
+++ b/bikeshed/src/com/google/gwt/app/client/IntegerParser.java
@@ -13,10 +13,18 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.Parser;
+
+import java.text.ParseException;
/**
- * A no-op renderer.
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * A simple unlocalized parser based on {@link Integer#valueOf(String)}.
*/
public class IntegerParser implements Parser<Integer> {
@@ -35,11 +43,11 @@
protected IntegerParser() {
}
- public Integer parse(String object) {
+ public Integer parse(CharSequence object) throws ParseException {
try {
- return Integer.valueOf(object);
+ return Integer.valueOf(object.toString());
} catch (NumberFormatException e) {
- throw new ParseException(e);
+ throw new ParseException(e.getMessage(), 0);
}
}
}
diff --git a/bikeshed/src/com/google/gwt/input/shared/IntegerRenderer.java b/bikeshed/src/com/google/gwt/app/client/IntegerRenderer.java
similarity index 72%
rename from bikeshed/src/com/google/gwt/input/shared/IntegerRenderer.java
rename to bikeshed/src/com/google/gwt/app/client/IntegerRenderer.java
index 249895c..b52be11 100644
--- a/bikeshed/src/com/google/gwt/input/shared/IntegerRenderer.java
+++ b/bikeshed/src/com/google/gwt/app/client/IntegerRenderer.java
@@ -13,12 +13,19 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.AbstractRenderer;
+import com.google.gwt.text.shared.Renderer;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* Renderer of Integer values.
*/
-public class IntegerRenderer implements Renderer<Integer> {
+public class IntegerRenderer extends AbstractRenderer<Integer> {
private static IntegerRenderer INSTANCE;
/**
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/LongBox.java b/bikeshed/src/com/google/gwt/app/client/LongBox.java
similarity index 77%
rename from bikeshed/src/com/google/gwt/user/client/ui/LongBox.java
rename to bikeshed/src/com/google/gwt/app/client/LongBox.java
index eaf5b57..a4e2d70 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/LongBox.java
+++ b/bikeshed/src/com/google/gwt/app/client/LongBox.java
@@ -13,13 +13,16 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.user.client.ui;
+package com.google.gwt.app.client;
import com.google.gwt.dom.client.Document;
-import com.google.gwt.input.shared.LongParser;
-import com.google.gwt.input.shared.LongRenderer;
+import com.google.gwt.user.client.ui.ValueBox;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* A ValueBox that uses {@link LongParser} and {@link LongRenderer}.
*/
public class LongBox extends ValueBox<Long> {
diff --git a/bikeshed/src/com/google/gwt/input/shared/LongParser.java b/bikeshed/src/com/google/gwt/app/client/LongParser.java
similarity index 69%
rename from bikeshed/src/com/google/gwt/input/shared/LongParser.java
rename to bikeshed/src/com/google/gwt/app/client/LongParser.java
index 76ba205..49d1a87 100644
--- a/bikeshed/src/com/google/gwt/input/shared/LongParser.java
+++ b/bikeshed/src/com/google/gwt/app/client/LongParser.java
@@ -13,9 +13,17 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.Parser;
+
+import java.text.ParseException;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* A no-op renderer.
*/
public class LongParser implements Parser<Long> {
@@ -35,11 +43,11 @@
protected LongParser() {
}
- public Long parse(String object) {
+ public Long parse(CharSequence object) throws ParseException {
try {
- return Long.valueOf(object);
+ return Long.valueOf(object.toString());
} catch (NumberFormatException e) {
- throw new ParseException(e);
+ throw new ParseException(e.getMessage(), 0);
}
}
}
diff --git a/bikeshed/src/com/google/gwt/input/shared/LongRenderer.java b/bikeshed/src/com/google/gwt/app/client/LongRenderer.java
similarity index 72%
rename from bikeshed/src/com/google/gwt/input/shared/LongRenderer.java
rename to bikeshed/src/com/google/gwt/app/client/LongRenderer.java
index 1b8c896..297d624 100644
--- a/bikeshed/src/com/google/gwt/input/shared/LongRenderer.java
+++ b/bikeshed/src/com/google/gwt/app/client/LongRenderer.java
@@ -13,12 +13,19 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.app.client;
+
+import com.google.gwt.text.shared.AbstractRenderer;
+import com.google.gwt.text.shared.Renderer;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* Renderer of Long values.
*/
-public class LongRenderer implements Renderer<Long> {
+public class LongRenderer extends AbstractRenderer<Long> {
private static LongRenderer INSTANCE;
/**
diff --git a/bikeshed/src/com/google/gwt/app/place/AbstractRecordEditActivity.java b/bikeshed/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
index 2dba31a..6da56eb 100644
--- a/bikeshed/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
+++ b/bikeshed/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
@@ -22,7 +22,6 @@
import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.valuestore.shared.SyncResult;
import com.google.gwt.valuestore.shared.Value;
-import com.google.gwt.valuestore.ui.RecordEditView;
import java.util.Set;
diff --git a/bikeshed/src/com/google/gwt/app/place/AbstractRecordListActivity.java b/bikeshed/src/com/google/gwt/app/place/AbstractRecordListActivity.java
index 10ae125..63f78f4 100644
--- a/bikeshed/src/com/google/gwt/app/place/AbstractRecordListActivity.java
+++ b/bikeshed/src/com/google/gwt/app/place/AbstractRecordListActivity.java
@@ -19,7 +19,6 @@
import com.google.gwt.requestfactory.shared.RecordListRequest;
import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.valuestore.shared.WriteOperation;
-import com.google.gwt.valuestore.ui.RecordListView;
import com.google.gwt.view.client.ListView;
import com.google.gwt.view.client.PagingListView;
import com.google.gwt.view.client.Range;
diff --git a/bikeshed/src/com/google/gwt/valuestore/ui/AbstractRecordListView.java b/bikeshed/src/com/google/gwt/app/place/AbstractRecordListView.java
similarity index 98%
rename from bikeshed/src/com/google/gwt/valuestore/ui/AbstractRecordListView.java
rename to bikeshed/src/com/google/gwt/app/place/AbstractRecordListView.java
index 07dc460..7f4a37e 100644
--- a/bikeshed/src/com/google/gwt/valuestore/ui/AbstractRecordListView.java
+++ b/bikeshed/src/com/google/gwt/app/place/AbstractRecordListView.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.valuestore.ui;
+package com.google.gwt.app.place;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
diff --git a/bikeshed/src/com/google/gwt/app/place/Activity.java b/bikeshed/src/com/google/gwt/app/place/Activity.java
index 8bb212c..c72abd0 100644
--- a/bikeshed/src/com/google/gwt/app/place/Activity.java
+++ b/bikeshed/src/com/google/gwt/app/place/Activity.java
@@ -15,7 +15,6 @@
*/
package com.google.gwt.app.place;
-import com.google.gwt.user.client.ui.IsWidget;
/**
* <p>
diff --git a/bikeshed/src/com/google/gwt/app/place/ActivityManager.java b/bikeshed/src/com/google/gwt/app/place/ActivityManager.java
index 75215ec..e595583 100644
--- a/bikeshed/src/com/google/gwt/app/place/ActivityManager.java
+++ b/bikeshed/src/com/google/gwt/app/place/ActivityManager.java
@@ -17,7 +17,6 @@
import com.google.gwt.app.place.Activity.Display;
import com.google.gwt.event.shared.HandlerManager;
-import com.google.gwt.user.client.ui.IsWidget;
/**
* <p>
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/IsWidget.java b/bikeshed/src/com/google/gwt/app/place/IsWidget.java
similarity index 77%
rename from bikeshed/src/com/google/gwt/user/client/ui/IsWidget.java
rename to bikeshed/src/com/google/gwt/app/place/IsWidget.java
index 14718bc..38fd4e7 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/IsWidget.java
+++ b/bikeshed/src/com/google/gwt/app/place/IsWidget.java
@@ -13,9 +13,15 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.user.client.ui;
+package com.google.gwt.app.place;
+
+import com.google.gwt.user.client.ui.Widget;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* Extended by View interfaces that are likely to be implemented by Widgets.
* Provides access to that widget, if it exists, without compromising the
* ability to provide mock view instance in JRE unit tests.
diff --git a/bikeshed/src/com/google/gwt/app/place/PlacePicker.java b/bikeshed/src/com/google/gwt/app/place/PlacePicker.java
index 9984b99..1832af1 100644
--- a/bikeshed/src/com/google/gwt/app/place/PlacePicker.java
+++ b/bikeshed/src/com/google/gwt/app/place/PlacePicker.java
@@ -15,7 +15,7 @@
*/
package com.google.gwt.app.place;
-import com.google.gwt.input.shared.Renderer;
+import com.google.gwt.text.shared.Renderer;
import java.util.List;
diff --git a/bikeshed/src/com/google/gwt/app/place/PlacePickerView.java b/bikeshed/src/com/google/gwt/app/place/PlacePickerView.java
index cc70b2f..c82bb99 100644
--- a/bikeshed/src/com/google/gwt/app/place/PlacePickerView.java
+++ b/bikeshed/src/com/google/gwt/app/place/PlacePickerView.java
@@ -15,8 +15,7 @@
*/
package com.google.gwt.app.place;
-import com.google.gwt.input.shared.Renderer;
-import com.google.gwt.user.client.ui.IsWidget;
+import com.google.gwt.text.shared.Renderer;
import com.google.gwt.user.client.ui.Widget;
import java.util.List;
diff --git a/bikeshed/src/com/google/gwt/valuestore/ui/PropertyColumn.java b/bikeshed/src/com/google/gwt/app/place/PropertyColumn.java
similarity index 92%
rename from bikeshed/src/com/google/gwt/valuestore/ui/PropertyColumn.java
rename to bikeshed/src/com/google/gwt/app/place/PropertyColumn.java
index c8b640f..1cc44d4 100644
--- a/bikeshed/src/com/google/gwt/valuestore/ui/PropertyColumn.java
+++ b/bikeshed/src/com/google/gwt/app/place/PropertyColumn.java
@@ -13,10 +13,10 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.valuestore.ui;
+package com.google.gwt.app.place;
-import com.google.gwt.input.shared.PassthroughRenderer;
-import com.google.gwt.input.shared.Renderer;
+import com.google.gwt.text.shared.PassthroughRenderer;
+import com.google.gwt.text.shared.Renderer;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.Record;
diff --git a/bikeshed/src/com/google/gwt/valuestore/ui/PropertyView.java b/bikeshed/src/com/google/gwt/app/place/PropertyView.java
similarity index 96%
rename from bikeshed/src/com/google/gwt/valuestore/ui/PropertyView.java
rename to bikeshed/src/com/google/gwt/app/place/PropertyView.java
index 9828574..81f34da 100644
--- a/bikeshed/src/com/google/gwt/valuestore/ui/PropertyView.java
+++ b/bikeshed/src/com/google/gwt/app/place/PropertyView.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.valuestore.ui;
+package com.google.gwt.app.place;
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.Record;
diff --git a/bikeshed/src/com/google/gwt/valuestore/ui/RecordDetailsView.java b/bikeshed/src/com/google/gwt/app/place/RecordDetailsView.java
similarity index 93%
rename from bikeshed/src/com/google/gwt/valuestore/ui/RecordDetailsView.java
rename to bikeshed/src/com/google/gwt/app/place/RecordDetailsView.java
index 53194d4..91d9d8d 100644
--- a/bikeshed/src/com/google/gwt/valuestore/ui/RecordDetailsView.java
+++ b/bikeshed/src/com/google/gwt/app/place/RecordDetailsView.java
@@ -13,9 +13,8 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.valuestore.ui;
+package com.google.gwt.app.place;
-import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.TakesValue;
/**
diff --git a/bikeshed/src/com/google/gwt/valuestore/ui/RecordEditView.java b/bikeshed/src/com/google/gwt/app/place/RecordEditView.java
similarity index 94%
rename from bikeshed/src/com/google/gwt/valuestore/ui/RecordEditView.java
rename to bikeshed/src/com/google/gwt/app/place/RecordEditView.java
index 7c442dd..6d4ef98 100644
--- a/bikeshed/src/com/google/gwt/valuestore/ui/RecordEditView.java
+++ b/bikeshed/src/com/google/gwt/app/place/RecordEditView.java
@@ -13,9 +13,8 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.valuestore.ui;
+package com.google.gwt.app.place;
-import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.TakesValue;
import com.google.gwt.valuestore.shared.DeltaValueStore;
import com.google.gwt.valuestore.shared.Record;
diff --git a/bikeshed/src/com/google/gwt/valuestore/ui/RecordListView.java b/bikeshed/src/com/google/gwt/app/place/RecordListView.java
similarity index 94%
rename from bikeshed/src/com/google/gwt/valuestore/ui/RecordListView.java
rename to bikeshed/src/com/google/gwt/app/place/RecordListView.java
index ca108f1..6e9e48c 100644
--- a/bikeshed/src/com/google/gwt/valuestore/ui/RecordListView.java
+++ b/bikeshed/src/com/google/gwt/app/place/RecordListView.java
@@ -13,9 +13,8 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.valuestore.ui;
+package com.google.gwt.app.place;
-import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.view.client.PagingListView;
diff --git a/bikeshed/src/com/google/gwt/input/shared/ParseException.java b/bikeshed/src/com/google/gwt/input/shared/ParseException.java
deleted file mode 100644
index 41a0cdf..0000000
--- a/bikeshed/src/com/google/gwt/input/shared/ParseException.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.input.shared;
-
-/**
- * Exception class indicating parsing errors.
- */
-public class ParseException extends RuntimeException {
-
- private final String rawInput;
- private final int offset;
-
- public ParseException(Throwable e) {
- this("", "", 0, e);
- }
-
- public ParseException(String rawInput) {
- this("", rawInput, 0, null);
- }
-
- public ParseException(String rawInput, int offset) {
- this("", rawInput, offset, null);
- }
-
- public ParseException(String message, String rawInput, int offset) {
- this(message, rawInput, offset, null);
- }
-
- public ParseException(String message, String rawInput, int offset, Throwable e) {
- super(message, e);
- this.rawInput = rawInput;
- this.offset = offset;
- }
-
- public String getInput() {
- return rawInput;
- }
-
- public int getOffset() {
- return offset;
- }
-}
\ No newline at end of file
diff --git a/bikeshed/src/com/google/gwt/input/shared/Renderer.java b/bikeshed/src/com/google/gwt/input/shared/Renderer.java
deleted file mode 100644
index cfe0ea3..0000000
--- a/bikeshed/src/com/google/gwt/input/shared/Renderer.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.input.shared;
-
-/**
- * An object that can render other objects of a particular type into plain-text
- * form.
- * <p>
- * TODO: steal the slightly richer version from Guava
- *
- * @param <T> the type to render
- */
-public interface Renderer<T> {
- /**
- * Renders {@code object} as plain text.
- */
- String render(T object);
-}
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java
index e1e2c59..813eceb 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java
@@ -17,6 +17,7 @@
import com.google.gwt.app.place.Activity;
import com.google.gwt.app.place.ActivityManager;
+import com.google.gwt.app.place.IsWidget;
import com.google.gwt.app.place.PlaceController;
import com.google.gwt.app.place.PlacePicker;
import com.google.gwt.core.client.EntryPoint;
@@ -32,7 +33,6 @@
import com.google.gwt.sample.expenses.gwt.request.ExpensesRequestFactory;
import com.google.gwt.sample.expenses.gwt.ui.ListActivitiesMapper;
import com.google.gwt.sample.expenses.gwt.ui.ScaffoldListPlaceRenderer;
-import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.gwt.valuestore.shared.Record;
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ScaffoldMobile.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ScaffoldMobile.java
index 3e32528..bd3b881 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ScaffoldMobile.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ScaffoldMobile.java
@@ -18,6 +18,7 @@
import com.google.gwt.app.place.Activity;
import com.google.gwt.app.place.ActivityManager;
import com.google.gwt.app.place.ActivityMapper;
+import com.google.gwt.app.place.IsWidget;
import com.google.gwt.app.place.PlaceController;
import com.google.gwt.app.place.PlacePicker;
import com.google.gwt.core.client.EntryPoint;
@@ -31,7 +32,6 @@
import com.google.gwt.sample.expenses.gwt.request.ExpensesRequestFactory;
import com.google.gwt.sample.expenses.gwt.ui.ListActivitiesMapper;
import com.google.gwt.sample.expenses.gwt.ui.ScaffoldListPlaceRenderer;
-import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.gwt.valuestore.shared.Record;
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/ScaffoldListPlaceRenderer.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/ScaffoldListPlaceRenderer.java
index ad1e975..7336c68 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/ScaffoldListPlaceRenderer.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/ScaffoldListPlaceRenderer.java
@@ -15,16 +15,16 @@
*/
package com.google.gwt.sample.expenses.gwt.ui;
-import com.google.gwt.input.shared.Renderer;
import com.google.gwt.sample.expenses.gwt.client.place.ListScaffoldPlace;
import com.google.gwt.sample.expenses.gwt.request.EmployeeRecord;
import com.google.gwt.sample.expenses.gwt.request.ReportRecord;
+import com.google.gwt.text.shared.AbstractRenderer;
import com.google.gwt.valuestore.shared.Record;
/**
* Renders {@link ListScaffoldPlace}s for display to users.
*/
-public class ScaffoldListPlaceRenderer implements Renderer<ListScaffoldPlace> {
+public class ScaffoldListPlaceRenderer extends AbstractRenderer<ListScaffoldPlace> {
public String render(ListScaffoldPlace object) {
// TODO These class comparisons are gross, find a cleaner way.
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsActivity.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsActivity.java
index e1c8ae8..9b62034 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsActivity.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsActivity.java
@@ -17,6 +17,7 @@
import com.google.gwt.app.place.AbstractActivity;
import com.google.gwt.app.place.PlaceController;
+import com.google.gwt.app.place.RecordDetailsView;
import com.google.gwt.requestfactory.shared.Receiver;
import com.google.gwt.sample.expenses.gwt.client.place.EmployeeScaffoldPlace;
import com.google.gwt.sample.expenses.gwt.client.place.ScaffoldPlace;
@@ -26,7 +27,6 @@
import com.google.gwt.valuestore.shared.DeltaValueStore;
import com.google.gwt.valuestore.shared.SyncResult;
import com.google.gwt.valuestore.shared.Value;
-import com.google.gwt.valuestore.ui.RecordDetailsView;
import java.util.Set;
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsView.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsView.java
index f8b6aca..c1eddbc 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsView.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsView.java
@@ -15,6 +15,7 @@
*/
package com.google.gwt.sample.expenses.gwt.ui.employee;
+import com.google.gwt.app.place.RecordDetailsView;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -27,7 +28,6 @@
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.valuestore.ui.RecordDetailsView;
/**
* Details view for employee records.
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
index 001b488..509ca40 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
@@ -17,6 +17,7 @@
import com.google.gwt.app.place.AbstractRecordEditActivity;
import com.google.gwt.app.place.PlaceController;
+import com.google.gwt.app.place.RecordEditView;
import com.google.gwt.requestfactory.shared.Receiver;
import com.google.gwt.sample.expenses.gwt.client.place.EmployeeScaffoldPlace;
import com.google.gwt.sample.expenses.gwt.client.place.ScaffoldPlace;
@@ -24,7 +25,6 @@
import com.google.gwt.sample.expenses.gwt.request.EmployeeRecord;
import com.google.gwt.sample.expenses.gwt.request.ExpensesRequestFactory;
import com.google.gwt.valuestore.shared.Value;
-import com.google.gwt.valuestore.ui.RecordEditView;
/**
* An activity that requests all info on an employee, allows the user to edit
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
index d5d648f..593464e 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
@@ -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.place.RecordEditView;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Element;
@@ -32,7 +33,6 @@
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.valuestore.shared.DeltaValueStore;
import com.google.gwt.valuestore.shared.Property;
-import com.google.gwt.valuestore.ui.RecordEditView;
import java.util.Map;
import java.util.Set;
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListActivity.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListActivity.java
index 9bf0883..8d3ce2b 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListActivity.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListActivity.java
@@ -17,6 +17,7 @@
import com.google.gwt.app.place.AbstractRecordListActivity;
import com.google.gwt.app.place.PlaceController;
+import com.google.gwt.app.place.RecordListView;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.requestfactory.shared.Receiver;
@@ -27,7 +28,6 @@
import com.google.gwt.sample.expenses.gwt.request.EmployeeRecord;
import com.google.gwt.sample.expenses.gwt.request.EmployeeRecordChanged;
import com.google.gwt.sample.expenses.gwt.request.ExpensesRequestFactory;
-import com.google.gwt.valuestore.ui.RecordListView;
import com.google.gwt.view.client.Range;
/**
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListView.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListView.java
index dd08e28..65af62b 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListView.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListView.java
@@ -15,6 +15,8 @@
*/
package com.google.gwt.sample.expenses.gwt.ui.employee;
+import com.google.gwt.app.place.AbstractRecordListView;
+import com.google.gwt.app.place.PropertyColumn;
import com.google.gwt.core.client.GWT;
import com.google.gwt.sample.expenses.gwt.request.EmployeeRecord;
import com.google.gwt.uibinder.client.UiBinder;
@@ -22,8 +24,6 @@
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTMLPanel;
-import com.google.gwt.valuestore.ui.AbstractRecordListView;
-import com.google.gwt.valuestore.ui.PropertyColumn;
import java.util.ArrayList;
import java.util.List;
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsActivity.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsActivity.java
index eb26387..5e0a020 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsActivity.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsActivity.java
@@ -17,6 +17,7 @@
import com.google.gwt.app.place.AbstractActivity;
import com.google.gwt.app.place.PlaceController;
+import com.google.gwt.app.place.RecordDetailsView;
import com.google.gwt.requestfactory.shared.Receiver;
import com.google.gwt.sample.expenses.gwt.client.place.ReportScaffoldPlace;
import com.google.gwt.sample.expenses.gwt.client.place.ScaffoldPlace;
@@ -26,7 +27,6 @@
import com.google.gwt.valuestore.shared.DeltaValueStore;
import com.google.gwt.valuestore.shared.SyncResult;
import com.google.gwt.valuestore.shared.Value;
-import com.google.gwt.valuestore.ui.RecordDetailsView;
import java.util.Set;
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java
index a936856..171fa31 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java
@@ -15,6 +15,7 @@
*/
package com.google.gwt.sample.expenses.gwt.ui.report;
+import com.google.gwt.app.place.RecordDetailsView;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -28,7 +29,6 @@
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.valuestore.ui.RecordDetailsView;
/**
* Details view for employee records.
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
index 4921a8f..9fa5505 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
@@ -17,6 +17,7 @@
import com.google.gwt.app.place.AbstractRecordEditActivity;
import com.google.gwt.app.place.PlaceController;
+import com.google.gwt.app.place.RecordEditView;
import com.google.gwt.requestfactory.shared.Receiver;
import com.google.gwt.sample.expenses.gwt.client.place.ReportScaffoldPlace;
import com.google.gwt.sample.expenses.gwt.client.place.ScaffoldPlace;
@@ -24,7 +25,6 @@
import com.google.gwt.sample.expenses.gwt.request.ExpensesRequestFactory;
import com.google.gwt.sample.expenses.gwt.request.ReportRecord;
import com.google.gwt.valuestore.shared.Value;
-import com.google.gwt.valuestore.ui.RecordEditView;
/**
* An activity that requests all info on a report, allows the user to edit it,
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
index 4a260b6..4525bdc 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
@@ -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.place.RecordEditView;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Element;
@@ -33,7 +34,6 @@
import com.google.gwt.user.datepicker.client.DateBox;
import com.google.gwt.valuestore.shared.DeltaValueStore;
import com.google.gwt.valuestore.shared.Property;
-import com.google.gwt.valuestore.ui.RecordEditView;
import java.util.Map;
import java.util.Set;
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListActivity.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListActivity.java
index 224835b..bfcebb2 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListActivity.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListActivity.java
@@ -17,6 +17,7 @@
import com.google.gwt.app.place.AbstractRecordListActivity;
import com.google.gwt.app.place.PlaceController;
+import com.google.gwt.app.place.RecordListView;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.requestfactory.shared.Receiver;
@@ -27,7 +28,6 @@
import com.google.gwt.sample.expenses.gwt.request.ExpensesRequestFactory;
import com.google.gwt.sample.expenses.gwt.request.ReportRecord;
import com.google.gwt.sample.expenses.gwt.request.ReportRecordChanged;
-import com.google.gwt.valuestore.ui.RecordListView;
import com.google.gwt.view.client.Range;
/**
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListView.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListView.java
index c48e65d..7fa5d2b 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListView.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListView.java
@@ -15,17 +15,17 @@
*/
package com.google.gwt.sample.expenses.gwt.ui.report;
+import com.google.gwt.app.place.AbstractRecordListView;
+import com.google.gwt.app.place.PropertyColumn;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
-import com.google.gwt.input.shared.DateTimeFormatRenderer;
+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;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTMLPanel;
-import com.google.gwt.valuestore.ui.AbstractRecordListView;
-import com.google.gwt.valuestore.ui.PropertyColumn;
import java.util.ArrayList;
import java.util.Date;
diff --git a/bikeshed/src/com/google/gwt/user/User.gwt.xml b/bikeshed/src/com/google/gwt/user/User.gwt.xml
deleted file mode 100644
index eb25a15..0000000
--- a/bikeshed/src/com/google/gwt/user/User.gwt.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--
- Copyright 2008 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.
--->
-
-<!-- Combines all user facilities into a single module for convenience. -->
-<!-- Most new code should inherit this module. -->
-<!-- -->
-<module>
- <inherits name="com.google.gwt.input.Input"/>
- <inherits name="com.google.gwt.core.Core"/>
- <inherits name="com.google.gwt.event.Event"/>
- <inherits name="com.google.gwt.animation.Animation"/>
- <inherits name="com.google.gwt.resources.Resources"/>
- <inherits name="com.google.gwt.layout.Layout"/>
- <inherits name="com.google.gwt.uibinder.UiBinder"/>
- <inherits name="com.google.gwt.user.AsyncProxy"/>
- <inherits name="com.google.gwt.user.RemoteService"/>
- <inherits name="com.google.gwt.user.DocumentRoot" />
- <inherits name="com.google.gwt.user.DOM"/>
- <inherits name="com.google.gwt.user.Window" />
- <inherits name="com.google.gwt.user.HTTPRequest"/>
- <inherits name="com.google.gwt.user.History"/>
- <inherits name="com.google.gwt.i18n.I18N"/>
- <inherits name="com.google.gwt.user.Popup"/>
- <inherits name="com.google.gwt.user.Form"/>
- <inherits name="com.google.gwt.user.TextBox"/>
- <inherits name="com.google.gwt.user.Focus"/>
- <inherits name="com.google.gwt.user.ImageBundle"/>
- <inherits name="com.google.gwt.user.ClippedImage"/>
- <inherits name="com.google.gwt.user.RichText"/>
- <inherits name="com.google.gwt.user.SplitPanel"/>
- <inherits name="com.google.gwt.user.CaptionPanel" />
- <inherits name="com.google.gwt.user.Window" />
- <inherits name="com.google.gwt.user.Tree"/>
- <inherits name="com.google.gwt.user.Hyperlink"/>
- <inherits name="com.google.gwt.user.FileUpload"/>
- <inherits name="com.google.gwt.user.datepicker.DatePicker"/>
- <inherits name="com.google.gwt.user.cellview.CellView"/>
-
- <super-source path="translatable"/>
- <source path="client"/>
-</module>
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/HasValue.java b/bikeshed/src/com/google/gwt/user/client/ui/HasValue.java
deleted file mode 100644
index 46eed6c..0000000
--- a/bikeshed/src/com/google/gwt/user/client/ui/HasValue.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2008 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.user.client.ui;
-
-import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
-
-/**
- * Extends {@link TakesValue} to allow the value to be pulled back out, and to
- * throw {@link com.google.gwt.event.logical.shared.ValueChangeEvent
- * ValueChangeEvent} events.
- * <p>
- * An object that implements this interface should be a user input widget, where
- * the user and programmer can both set and get the object's value. It is
- * intended to provide a unified interface to widgets with "atomic" values, like
- * Strings and Dates.
- *
- * @param <T> the type of value
- */
-public interface HasValue<T> extends TakesValue<T>, HasValueChangeHandlers<T> {
-
- /**
- * Gets this object's value.
- *
- * @return the object's value
- */
- T getValue();
-
- /**
- * Sets this object's value without firing any events. This should be
- * identical to calling setValue(value, false).
- * <p>
- * It is acceptable to fail assertions or throw (documented) unchecked
- * exceptions in response to bad values.
- * <p>
- * By convention, GWT widgets that can be cleared accept null for
- * <code>value</code>, but it is acceptable for widgets that cannot be cleared
- * to throw an exception for null values.
- *
- * @param value the object's new value
- */
- void setValue(T value);
-
- /**
- * Sets this object's value. Fires
- * {@link com.google.gwt.event.logical.shared.ValueChangeEvent} when
- * fireEvents is true and the new value does not equal the existing value.
- * <p>
- * It is acceptable to fail assertions or throw (documented) unchecked
- * exceptions in response to bad values.
- *
- * @param value the object's new value
- * @param fireEvents fire events if true and value is new
- */
- void setValue(T value, boolean fireEvents);
-}
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/TextBoxBase.java b/bikeshed/src/com/google/gwt/user/client/ui/TextBoxBase.java
deleted file mode 100644
index 0afbe61..0000000
--- a/bikeshed/src/com/google/gwt/user/client/ui/TextBoxBase.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.
- */
-package com.google.gwt.user.client.ui;
-
-import com.google.gwt.dom.client.Element;
-import com.google.gwt.input.shared.PassthroughParser;
-import com.google.gwt.input.shared.PassthroughRenderer;
-
-/**
- * Legacy abstract base class for all text entry widgets.
- */
-public class TextBoxBase extends ValueBoxBase<String> {
-
- /**
- * Text alignment constant, used in
- * {@link TextBoxBase#setTextAlignment(TextBoxBase.TextAlignConstant)}.
- */
- public static class TextAlignConstant {
- private String textAlignString;
-
- private TextAlignConstant(String textAlignString) {
- this.textAlignString = textAlignString;
- }
-
- String getTextAlignString() {
- return textAlignString;
- }
- }
-
- /**
- * Center the text.
- */
- public static final TextAlignConstant ALIGN_CENTER = new TextAlignConstant(
- "center");
-
- /**
- * Justify the text.
- */
- public static final TextAlignConstant ALIGN_JUSTIFY = new TextAlignConstant(
- "justify");
-
- /**
- * Align the text to the left edge.
- */
- public static final TextAlignConstant ALIGN_LEFT = new TextAlignConstant(
- "left");
-
- /**
- * Align the text to the right.
- */
- public static final TextAlignConstant ALIGN_RIGHT = new TextAlignConstant(
- "right");
-
- /**
- * Creates a text box that wraps the given browser element handle. This is
- * only used by subclasses.
- *
- * @param elem the browser element to wrap
- */
- protected TextBoxBase(Element elem) {
- super(elem, PassthroughRenderer.instance(), PassthroughParser.instance());
- }
-}
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/package.html b/bikeshed/src/com/google/gwt/user/client/ui/package.html
deleted file mode 100644
index fbf661f..0000000
--- a/bikeshed/src/com/google/gwt/user/client/ui/package.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
-<body>
-Widgets, Panels, and other user-interface classes.
-
-This package contains all of the high-level user-interface Widgets, along with
-panels and event interfaces. These classes form the bulk of the client-side
-libraries used by GWT applications.
-</body>
-</html>
diff --git a/bikeshed/test/com/google/gwt/app/place/ActivityManagerTest.java b/bikeshed/test/com/google/gwt/app/place/ActivityManagerTest.java
index 102dafe..1faf89f 100644
--- a/bikeshed/test/com/google/gwt/app/place/ActivityManagerTest.java
+++ b/bikeshed/test/com/google/gwt/app/place/ActivityManagerTest.java
@@ -16,7 +16,6 @@
package com.google.gwt.app.place;
import com.google.gwt.event.shared.HandlerManager;
-import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import junit.framework.TestCase;
diff --git a/bikeshed/src/com/google/gwt/input/shared/DateTimeFormatRenderer.java b/user/src/com/google/gwt/i18n/client/DateTimeFormatRenderer.java
similarity index 84%
rename from bikeshed/src/com/google/gwt/input/shared/DateTimeFormatRenderer.java
rename to user/src/com/google/gwt/i18n/client/DateTimeFormatRenderer.java
index f8357ed..6887d89 100644
--- a/bikeshed/src/com/google/gwt/input/shared/DateTimeFormatRenderer.java
+++ b/user/src/com/google/gwt/i18n/client/DateTimeFormatRenderer.java
@@ -13,17 +13,16 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.i18n.client;
-import com.google.gwt.i18n.client.DateTimeFormat;
-import com.google.gwt.i18n.client.TimeZone;
+import com.google.gwt.text.shared.AbstractRenderer;
import java.util.Date;
/**
* Renders {@link Date} objects with a {@link DateTimeFormat}.
*/
-public class DateTimeFormatRenderer implements Renderer<Date> {
+public class DateTimeFormatRenderer extends AbstractRenderer<Date> {
private final DateTimeFormat format;
private final TimeZone timeZone;
diff --git a/bikeshed/src/com/google/gwt/input/Input.gwt.xml b/user/src/com/google/gwt/text/Text.gwt.xml
similarity index 92%
rename from bikeshed/src/com/google/gwt/input/Input.gwt.xml
rename to user/src/com/google/gwt/text/Text.gwt.xml
index 618ee19..b841ec9 100644
--- a/bikeshed/src/com/google/gwt/input/Input.gwt.xml
+++ b/user/src/com/google/gwt/text/Text.gwt.xml
@@ -14,5 +14,6 @@
the License.
-->
<module>
+ <inherits name="com.google.gwt.core.Core"/>
<source path="shared"/>
</module>
diff --git a/user/src/com/google/gwt/text/shared/AbstractRenderer.java b/user/src/com/google/gwt/text/shared/AbstractRenderer.java
new file mode 100644
index 0000000..3c69c9e
--- /dev/null
+++ b/user/src/com/google/gwt/text/shared/AbstractRenderer.java
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+package com.google.gwt.text.shared;
+
+import java.io.IOException;
+
+/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * Abstract implementation of a renderer to make implementation of rendering
+ * simpler.
+ *
+ * @param <T> the type to render
+ */
+public abstract class AbstractRenderer<T> implements Renderer<T> {
+ public void render(T object, Appendable appendable) throws IOException {
+ appendable.append(render(object));
+ }
+}
\ No newline at end of file
diff --git a/bikeshed/src/com/google/gwt/input/shared/Parser.java b/user/src/com/google/gwt/text/shared/Parser.java
similarity index 70%
rename from bikeshed/src/com/google/gwt/input/shared/Parser.java
rename to user/src/com/google/gwt/text/shared/Parser.java
index 91b1c46..ba25b95 100644
--- a/bikeshed/src/com/google/gwt/input/shared/Parser.java
+++ b/user/src/com/google/gwt/text/shared/Parser.java
@@ -13,13 +13,19 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.text.shared;
+
+import java.text.ParseException;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* An object that can parse text and return a value.
*
* @param <T> the type to parse
*/
public interface Parser<T> {
- T parse(String s) throws ParseException;
+ T parse(CharSequence text) throws ParseException;
}
diff --git a/bikeshed/src/com/google/gwt/input/shared/PassthroughParser.java b/user/src/com/google/gwt/text/shared/PassthroughParser.java
similarity index 75%
rename from bikeshed/src/com/google/gwt/input/shared/PassthroughParser.java
rename to user/src/com/google/gwt/text/shared/PassthroughParser.java
index 6464a42..5e3ecc9 100644
--- a/bikeshed/src/com/google/gwt/input/shared/PassthroughParser.java
+++ b/user/src/com/google/gwt/text/shared/PassthroughParser.java
@@ -13,10 +13,14 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.text.shared;
/**
- * A no-op renderer.
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * A no-op String parser.
*/
public class PassthroughParser implements Parser<String> {
@@ -35,7 +39,7 @@
protected PassthroughParser() {
}
- public String parse(String object) {
- return object;
+ public String parse(CharSequence object) {
+ return object.toString();
}
}
diff --git a/bikeshed/src/com/google/gwt/input/shared/PassthroughRenderer.java b/user/src/com/google/gwt/text/shared/PassthroughRenderer.java
similarity index 75%
rename from bikeshed/src/com/google/gwt/input/shared/PassthroughRenderer.java
rename to user/src/com/google/gwt/text/shared/PassthroughRenderer.java
index 6f475e2..1385061 100644
--- a/bikeshed/src/com/google/gwt/input/shared/PassthroughRenderer.java
+++ b/user/src/com/google/gwt/text/shared/PassthroughRenderer.java
@@ -13,12 +13,17 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.input.shared;
+package com.google.gwt.text.shared;
+
/**
- * A no-op renderer.
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * A no-op String renderer.
*/
-public class PassthroughRenderer implements Renderer<String> {
+public class PassthroughRenderer extends AbstractRenderer<String> {
private static PassthroughRenderer INSTANCE;
diff --git a/user/src/com/google/gwt/text/shared/Renderer.java b/user/src/com/google/gwt/text/shared/Renderer.java
new file mode 100644
index 0000000..431307a
--- /dev/null
+++ b/user/src/com/google/gwt/text/shared/Renderer.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2007 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.text.shared;
+
+import java.io.IOException;
+
+/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
+ * An object that can render other objects of a particular type into plain-text
+ * form. Allows decoupling that is useful for a dependency-injection
+ * architecture.
+ *
+ * @param <T> the type to render
+ */
+public interface Renderer<T> {
+
+ /**
+ * Renders {@code object} as plain text. Should never throw any exceptions!
+ */
+ String render(T object);
+
+ /**
+ * Renders {@code object} as plain text, appended directly to {@code
+ * appendable}. Should never throw any exceptions except if {@code appendable}
+ * throws an {@code IOException}.
+ */
+ void render(T object, Appendable appendable) throws IOException;
+}
diff --git a/user/src/com/google/gwt/user/User.gwt.xml b/user/src/com/google/gwt/user/User.gwt.xml
index 606d0eb..6d0c941 100644
--- a/user/src/com/google/gwt/user/User.gwt.xml
+++ b/user/src/com/google/gwt/user/User.gwt.xml
@@ -19,6 +19,7 @@
<!-- -->
<module>
<inherits name="com.google.gwt.core.Core"/>
+ <inherits name="com.google.gwt.text.Text"/>
<inherits name="com.google.gwt.event.Event"/>
<inherits name="com.google.gwt.animation.Animation"/>
<inherits name="com.google.gwt.resources.Resources"/>
diff --git a/user/src/com/google/gwt/user/client/ui/HasValue.java b/user/src/com/google/gwt/user/client/ui/HasValue.java
index d8ec389..46eed6c 100644
--- a/user/src/com/google/gwt/user/client/ui/HasValue.java
+++ b/user/src/com/google/gwt/user/client/ui/HasValue.java
@@ -1,12 +1,12 @@
/*
* Copyright 2008 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
@@ -18,18 +18,22 @@
import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
/**
- * An object that implements this interface should be a user input
- * widget, where the user and programmer can both set and get the
- * object's value. It is intended to provide a unified interface to
- * widgets with "atomic" values, like Strings and Dates.
- *
- * @param <T> the type of value.
+ * Extends {@link TakesValue} to allow the value to be pulled back out, and to
+ * throw {@link com.google.gwt.event.logical.shared.ValueChangeEvent
+ * ValueChangeEvent} events.
+ * <p>
+ * An object that implements this interface should be a user input widget, where
+ * the user and programmer can both set and get the object's value. It is
+ * intended to provide a unified interface to widgets with "atomic" values, like
+ * Strings and Dates.
+ *
+ * @param <T> the type of value
*/
-public interface HasValue<T> extends HasValueChangeHandlers<T> {
+public interface HasValue<T> extends TakesValue<T>, HasValueChangeHandlers<T> {
/**
* Gets this object's value.
- *
+ *
* @return the object's value
*/
T getValue();
@@ -42,9 +46,9 @@
* exceptions in response to bad values.
* <p>
* By convention, GWT widgets that can be cleared accept null for
- * <code>value</code>, but it is acceptable for widgets that cannot
- * be cleared to throw an exception for null values.
- *
+ * <code>value</code>, but it is acceptable for widgets that cannot be cleared
+ * to throw an exception for null values.
+ *
* @param value the object's new value
*/
void setValue(T value);
@@ -56,7 +60,7 @@
* <p>
* It is acceptable to fail assertions or throw (documented) unchecked
* exceptions in response to bad values.
- *
+ *
* @param value the object's new value
* @param fireEvents fire events if true and value is new
*/
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/TakesValue.java b/user/src/com/google/gwt/user/client/ui/TakesValue.java
similarity index 83%
rename from bikeshed/src/com/google/gwt/user/client/ui/TakesValue.java
rename to user/src/com/google/gwt/user/client/ui/TakesValue.java
index c64e17f..5a94f49 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/TakesValue.java
+++ b/user/src/com/google/gwt/user/client/ui/TakesValue.java
@@ -16,6 +16,10 @@
package com.google.gwt.user.client.ui;
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* Implemented by objects that hold a value.
*
* @param <V> value type
diff --git a/user/src/com/google/gwt/user/client/ui/TextBoxBase.java b/user/src/com/google/gwt/user/client/ui/TextBoxBase.java
index 18bc451..eab38ab 100644
--- a/user/src/com/google/gwt/user/client/ui/TextBoxBase.java
+++ b/user/src/com/google/gwt/user/client/ui/TextBoxBase.java
@@ -15,24 +15,14 @@
*/
package com.google.gwt.user.client.ui;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
-import com.google.gwt.event.dom.client.ChangeEvent;
-import com.google.gwt.event.dom.client.ChangeHandler;
-import com.google.gwt.event.dom.client.HasChangeHandlers;
-import com.google.gwt.event.logical.shared.ValueChangeEvent;
-import com.google.gwt.event.logical.shared.ValueChangeHandler;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.ui.impl.TextBoxImpl;
+import com.google.gwt.text.shared.PassthroughParser;
+import com.google.gwt.text.shared.PassthroughRenderer;
/**
- * Abstract base class for all text entry widgets.
+ * Legacy abstract base class for all text entry widgets.
*/
-@SuppressWarnings("deprecation")
-public class TextBoxBase extends FocusWidget implements SourcesChangeEvents,
- HasChangeHandlers, HasText, HasName, HasValue<String> {
+public class TextBoxBase extends ValueBoxBase<String> {
/**
* Text alignment constant, used in
@@ -45,7 +35,7 @@
this.textAlignString = textAlignString;
}
- private String getTextAlignString() {
+ String getTextAlignString() {
return textAlignString;
}
}
@@ -74,11 +64,6 @@
public static final TextAlignConstant ALIGN_RIGHT = new TextAlignConstant(
"right");
- private static TextBoxImpl impl = GWT.create(TextBoxImpl.class);
-
- private Event currentEvent;
- private boolean valueChangeHandlerInitialized;
-
/**
* Creates a text box that wraps the given browser element handle. This is
* only used by subclasses.
@@ -86,251 +71,15 @@
* @param elem the browser element to wrap
*/
protected TextBoxBase(Element elem) {
- super(elem);
- }
-
- public HandlerRegistration addChangeHandler(ChangeHandler handler) {
- return addDomHandler(handler, ChangeEvent.getType());
+ super(elem, PassthroughRenderer.instance(), PassthroughParser.instance());
}
/**
- * @deprecated Use {@link #addChangeHandler} instead
+ * Overridden to return "" from an empty text box.
*/
- @Deprecated
- public void addChangeListener(ChangeListener listener) {
- addChangeHandler(new ListenerWrapper.WrappedChangeListener(listener));
- }
-
- public HandlerRegistration addValueChangeHandler(
- ValueChangeHandler<String> handler) {
- // Initialization code
- if (!valueChangeHandlerInitialized) {
- valueChangeHandlerInitialized = true;
- addChangeHandler(new ChangeHandler() {
- public void onChange(ChangeEvent event) {
- ValueChangeEvent.fire(TextBoxBase.this, getText());
- }
- });
- }
- return addHandler(handler, ValueChangeEvent.getType());
- }
-
- /**
- * If a keyboard event is currently being handled on this text box, calling
- * this method will suppress it. This allows listeners to easily filter
- * keyboard input.
- */
- public void cancelKey() {
- if (currentEvent != null) {
- DOM.eventPreventDefault(currentEvent);
- }
- }
-
- /**
- * Gets the current position of the cursor (this also serves as the beginning
- * of the text selection).
- *
- * @return the cursor's position
- */
- public int getCursorPos() {
- return impl.getCursorPos(getElement());
- }
-
- public String getName() {
- return DOM.getElementProperty(getElement(), "name");
- }
-
- /**
- * Gets the text currently selected within this text box.
- *
- * @return the selected text, or an empty string if none is selected
- */
- public String getSelectedText() {
- int start = getCursorPos();
- if (start < 0) {
- return "";
- }
- int length = getSelectionLength();
- return getText().substring(start, start + length);
- }
-
- /**
- * Gets the length of the current text selection.
- *
- * @return the text selection length
- */
- public int getSelectionLength() {
- return impl.getSelectionLength(getElement());
- }
-
- public String getText() {
- return DOM.getElementProperty(getElement(), "value");
- }
-
- public String getValue() {
- return getText();
- }
-
- /**
- * Determines whether or not the widget is read-only.
- *
- * @return <code>true</code> if the widget is currently read-only,
- * <code>false</code> if the widget is currently editable
- */
- public boolean isReadOnly() {
- return DOM.getElementPropertyBoolean(getElement(), "readOnly");
- }
-
@Override
- public void onBrowserEvent(Event event) {
- int type = DOM.eventGetType(event);
- if ((type & Event.KEYEVENTS) != 0) {
- // Fire the keyboard event. Hang on to the current event object so that
- // cancelKey() and setKey() can be implemented.
- currentEvent = event;
- // Call the superclass' onBrowserEvent as that includes the key event
- // handlers.
- super.onBrowserEvent(event);
- currentEvent = null;
- } else {
- // Handles Focus and Click events.
- super.onBrowserEvent(event);
- }
- }
-
- /**
- * @deprecated Use the {@link HandlerRegistration#removeHandler} method on
- * the object returned by {@link #addChangeHandler} instead
- */
- @Deprecated
- public void removeChangeListener(ChangeListener listener) {
- ListenerWrapper.WrappedChangeListener.remove(this, listener);
- }
-
- /**
- * Selects all of the text in the box.
- *
- * This will only work when the widget is attached to the document and not
- * hidden.
- */
- public void selectAll() {
- int length = getText().length();
- if (length > 0) {
- setSelectionRange(0, length);
- }
- }
-
- /**
- * Sets the cursor position.
- *
- * This will only work when the widget is attached to the document and not
- * hidden.
- *
- * @param pos the new cursor position
- */
- public void setCursorPos(int pos) {
- setSelectionRange(pos, 0);
- }
-
- /**
- * If a keyboard event is currently being handled by the text box, this method
- * replaces the unicode character or key code associated with it. This allows
- * listeners to easily filter keyboard input.
- *
- * @param key the new key value
- * @deprecated this method only works in IE and should not have been added to
- * the API
- */
- @Deprecated
- public void setKey(char key) {
- if (currentEvent != null) {
- DOM.eventSetKeyCode(currentEvent, key);
- }
- }
-
- public void setName(String name) {
- DOM.setElementProperty(getElement(), "name", name);
- }
-
- /**
- * Turns read-only mode on or off.
- *
- * @param readOnly if <code>true</code>, the widget becomes read-only; if
- * <code>false</code> the widget becomes editable
- */
- public void setReadOnly(boolean readOnly) {
- DOM.setElementPropertyBoolean(getElement(), "readOnly", readOnly);
- String readOnlyStyle = "readonly";
- if (readOnly) {
- addStyleDependentName(readOnlyStyle);
- } else {
- removeStyleDependentName(readOnlyStyle);
- }
- }
-
- /**
- * Sets the range of text to be selected.
- *
- * This will only work when the widget is attached to the document and not
- * hidden.
- *
- * @param pos the position of the first character to be selected
- * @param length the number of characters to be selected
- */
- public void setSelectionRange(int pos, int length) {
- // Setting the selection range will not work for unattached elements.
- if (!isAttached()) {
- return;
- }
-
- if (length < 0) {
- throw new IndexOutOfBoundsException(
- "Length must be a positive integer. Length: " + length);
- }
- if ((pos < 0) || (length + pos > getText().length())) {
- throw new IndexOutOfBoundsException("From Index: " + pos + " To Index: "
- + (pos + length) + " Text Length: " + getText().length());
- }
- impl.setSelectionRange(getElement(), pos, length);
- }
-
- /**
- * Sets this object's text. Note that some browsers will manipulate the text
- * before adding it to the widget. For example, most browsers will strip all
- * <code>\r</code> from the text, except IE which will add a <code>\r</code>
- * before each <code>\n</code>. Use {@link #getText()} to get the text
- * directly from the widget.
- *
- * @param text the object's new text
- */
- public void setText(String text) {
- DOM.setElementProperty(getElement(), "value", text != null ? text : "");
- }
-
- /**
- * Sets the alignment of the text in the text box.
- *
- * @param align the text alignment (as specified by {@link #ALIGN_CENTER},
- * {@link #ALIGN_JUSTIFY}, {@link #ALIGN_LEFT}, and
- * {@link #ALIGN_RIGHT})
- */
- public void setTextAlignment(TextAlignConstant align) {
- DOM.setStyleAttribute(getElement(), "textAlign", align.getTextAlignString());
- }
-
- public void setValue(String value) {
- setValue(value, false);
- }
-
- public void setValue(String value, boolean fireEvents) {
- String oldValue = getText();
- setText(value);
- if (fireEvents) {
- ValueChangeEvent.fireIfNotEqual(this, oldValue, value);
- }
- }
-
- protected TextBoxImpl getImpl() {
- return impl;
+ public String getValue() {
+ String raw = super.getValue();
+ return raw == null ? "" : raw;
}
}
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/ValueBox.java b/user/src/com/google/gwt/user/client/ui/ValueBox.java
similarity index 78%
rename from bikeshed/src/com/google/gwt/user/client/ui/ValueBox.java
rename to user/src/com/google/gwt/user/client/ui/ValueBox.java
index af47e7d..09afe21 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/ValueBox.java
+++ b/user/src/com/google/gwt/user/client/ui/ValueBox.java
@@ -20,34 +20,22 @@
import com.google.gwt.dom.client.InputElement;
import com.google.gwt.i18n.client.BidiUtils;
import com.google.gwt.i18n.client.HasDirection;
-import com.google.gwt.input.shared.Parser;
-import com.google.gwt.input.shared.Renderer;
+import com.google.gwt.text.shared.Parser;
+import com.google.gwt.text.shared.Renderer;
/**
- * A standard single-line text box.
- *
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
* <p>
- * <img class='gallery' src='doc-files/TextBox.png'/>
- * </p>
- *
- * <h3>CSS Style Rules</h3>
- * <ul class='css'>
- * <li>.gwt-TextBox { primary style }</li>
- * <li>.gwt-TextBox-readonly { dependent style set when the text box is
- * read-only }</li>
- * </ul>
- *
- * <p>
- * <h3>Example</h3>
- * {@example com.google.gwt.examples.TextBoxExample}
- * </p>
+ * A text box able to parse its displayed value.
*
* @param <T> the value type
*/
public class ValueBox<T> extends ValueBoxBase<T> implements HasDirection {
/**
- * Creates a TextBox widget that wraps an existing <input type='text'>
+ * Creates a ValueBox widget that wraps an existing <input type='text'>
* element.
*
* This element must already be attached to the document. If the element is
@@ -86,7 +74,7 @@
}
/**
- * Gets the maximum allowable length of the text box.
+ * Gets the maximum allowable length.
*
* @return the maximum length, in characters
*/
@@ -95,7 +83,7 @@
}
/**
- * Gets the number of visible characters in the text box.
+ * Gets the number of visible characters.
*
* @return the number of visible characters
*/
@@ -108,7 +96,7 @@
}
/**
- * Sets the maximum allowable length of the text box.
+ * Sets the maximum allowable length.
*
* @param length the maximum length, in characters
*/
@@ -117,7 +105,7 @@
}
/**
- * Sets the number of visible characters in the text box.
+ * Sets the number of visible characters.
*
* @param length the number of visible characters
*/
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/ValueBoxBase.java b/user/src/com/google/gwt/user/client/ui/ValueBoxBase.java
similarity index 95%
rename from bikeshed/src/com/google/gwt/user/client/ui/ValueBoxBase.java
rename to user/src/com/google/gwt/user/client/ui/ValueBoxBase.java
index 4f59bf1..10e7199 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/ValueBoxBase.java
+++ b/user/src/com/google/gwt/user/client/ui/ValueBoxBase.java
@@ -23,15 +23,20 @@
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.input.shared.ParseException;
-import com.google.gwt.input.shared.Parser;
-import com.google.gwt.input.shared.Renderer;
+import com.google.gwt.text.shared.Parser;
+import com.google.gwt.text.shared.Renderer;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.TextBoxBase.TextAlignConstant;
import com.google.gwt.user.client.ui.impl.TextBoxImpl;
+import java.text.ParseException;
+
/**
+ * <span style="color:red">Experimental API: This class is still under rapid
+ * development, and is very likely to be deleted. Use it at your own risk.
+ * </span>
+ * <p>
* Abstract base class for all text entry widgets.
*
* @param <T> the value type
@@ -49,7 +54,7 @@
private boolean valueChangeHandlerInitialized;
/**
- * Creates a text box that wraps the given browser element handle. This is
+ * Creates a value box that wraps the given browser element handle. This is
* only used by subclasses.
*
* @param elem the browser element to wrap
@@ -151,7 +156,7 @@
/**
* Return the parsed value, or null if the field is empty.
*
- * @throws ParseException if the value cannot be parsed
+ * @throws ParseFailedException if the value cannot be parsed
*/
public T getValueOrThrow() throws ParseException {
String text = getText().trim();
diff --git a/bikeshed/src/com/google/gwt/user/client/ui/IsWidget.java b/user/super/com/google/gwt/emul/java/text/ParseException.java
similarity index 64%
copy from bikeshed/src/com/google/gwt/user/client/ui/IsWidget.java
copy to user/super/com/google/gwt/emul/java/text/ParseException.java
index 14718bc..25b7f52 100644
--- a/bikeshed/src/com/google/gwt/user/client/ui/IsWidget.java
+++ b/user/super/com/google/gwt/emul/java/text/ParseException.java
@@ -13,13 +13,23 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.google.gwt.user.client.ui;
+
+package java.text;
/**
- * Extended by View interfaces that are likely to be implemented by Widgets.
- * Provides access to that widget, if it exists, without compromising the
- * ability to provide mock view instance in JRE unit tests.
+ * Emulation of {@code java.text.ParseException}.
*/
-public interface IsWidget {
- Widget asWidget();
+public class ParseException extends Exception {
+
+ private final int errorOffset;
+
+ public ParseException(String s, int errorOffset) {
+ super(s);
+ this.errorOffset = errorOffset;
+ }
+
+ public int getErrorOffset() {
+ return errorOffset;
+ }
}
+