mirror of
https://github.com/zxing/zxing.git
synced 2025-03-05 20:48:51 -08:00
Update to python27, HRD in App Engine. Fix compile of GWT project and remove use of deprecated time picker. Add pom target to build GWT app via Ant.
git-svn-id: https://zxing.googlecode.com/svn/trunk@2918 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
aa19cb25af
commit
1a77226030
|
@ -60,7 +60,7 @@ limitations under the License.
|
|||
<jvmarg value="-Xmx256M"/>
|
||||
<arg value="-strict"/>
|
||||
<arg line="-war"/>
|
||||
<arg value="war"/>
|
||||
<arg value="src/war"/>
|
||||
<!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
|
||||
<arg line="${gwt.args}"/>
|
||||
<arg value="com.google.zxing.web.generator.Generator"/>
|
||||
|
@ -79,7 +79,7 @@ limitations under the License.
|
|||
<arg value="-startupUrl"/>
|
||||
<arg value="Generator.html"/>
|
||||
<arg line="-war"/>
|
||||
<arg value="war"/>
|
||||
<arg value="src/war"/>
|
||||
<!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
|
||||
<arg line="${gwt.args}"/>
|
||||
<arg value="com.google.zxing.web.generator.Generator"/>
|
||||
|
@ -89,7 +89,7 @@ limitations under the License.
|
|||
<target name="build" depends="gwtc" description="Build this project" />
|
||||
|
||||
<target name="war" depends="build" description="Create a war file">
|
||||
<zip destfile="Generator.war" basedir="war"/>
|
||||
<zip destfile="Generator.war" basedir="src/war"/>
|
||||
</target>
|
||||
|
||||
<target name="clean" description="Cleans this project">
|
||||
|
|
|
@ -26,11 +26,7 @@
|
|||
<groupId>com.google.gwt</groupId>
|
||||
<artifactId>gwt-user</artifactId>
|
||||
<version>2.5.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.gwt</groupId>
|
||||
<artifactId>gwt-incubator</artifactId>
|
||||
<version>2.0.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
@ -42,6 +38,29 @@
|
|||
|
||||
<!-- TODO use Maven GWT plugin to actually build this -->
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<property name="build.compiler" value="extJavac"/>
|
||||
<ant target="build"/>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<name>ZXing Appspot-based encoder</name>
|
||||
<description>GWT-based encoder app hosted at zxing.appspot.com</description>
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
|
||||
|
||||
<!-- Other module inherits -->
|
||||
<inherits name='com.google.gwt.gen2.picker.Picker'/>
|
||||
|
||||
<!-- Specify the app entry point class. -->
|
||||
<entry-point class='com.google.zxing.web.generator.client.Generator'/>
|
||||
|
|
|
@ -23,12 +23,12 @@ import com.google.gwt.event.dom.client.ClickHandler;
|
|||
import com.google.gwt.event.dom.client.KeyPressHandler;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeEvent;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.gen2.picker.client.TimePicker;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.user.client.DOM;
|
||||
import com.google.gwt.user.client.Element;
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.HasText;
|
||||
import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
@ -52,12 +52,8 @@ public final class CalendarEventGenerator implements GeneratorSource {
|
|||
private final CheckBox fullDay = new CheckBox();
|
||||
private final DatePicker datePicker1 = new DatePicker();
|
||||
private final DatePicker datePicker2 = new DatePicker();
|
||||
private final TimePicker timePicker1 = new TimePicker(new Date(), DateTimeFormat
|
||||
.getFormat("a"), DateTimeFormat.getFormat("hh"), DateTimeFormat
|
||||
.getFormat("mm"), null);
|
||||
private final TimePicker timePicker2 = new TimePicker(new Date(), DateTimeFormat
|
||||
.getFormat("a"), DateTimeFormat.getFormat("hh"), DateTimeFormat
|
||||
.getFormat("mm"), null);
|
||||
private final TextBox timePicker1 = new TextBox();
|
||||
private final TextBox timePicker2 = new TextBox();
|
||||
private final CheckBox summerTime = new CheckBox();
|
||||
private final ListBox timeZones = new ListBox();
|
||||
private Date timePicker1PreviousDate = null;
|
||||
|
@ -68,25 +64,36 @@ public final class CalendarEventGenerator implements GeneratorSource {
|
|||
eventName.addStyleName(StylesDefs.INPUT_FIELD_REQUIRED);
|
||||
eventName.addChangeHandler(handler);
|
||||
eventName.addKeyPressHandler(keyListener);
|
||||
timePicker2.setDateTime(addMilliseconds(timePicker1.getDateTime(), ONE_HOUR));
|
||||
timePicker1PreviousDate = timePicker1.getDateTime();
|
||||
setDateToTextBox(timePicker1, new Date());
|
||||
try {
|
||||
setDateToTextBox(timePicker2, addMilliseconds(getDateFromTextBox(timePicker1), ONE_HOUR));
|
||||
timePicker1PreviousDate = getDateFromTextBox(timePicker1);
|
||||
} catch (GeneratorException ge) {
|
||||
throw new IllegalStateException(ge);
|
||||
}
|
||||
|
||||
buildTimeZoneList();
|
||||
timeZones.setSelectedIndex(25);
|
||||
timeZones.addKeyPressHandler(keyListener);
|
||||
timePicker1.addValueChangeHandler(new ValueChangeHandler<Date>() {
|
||||
timePicker1.addValueChangeHandler(new ValueChangeHandler<String>() {
|
||||
@Override
|
||||
public void onValueChange(ValueChangeEvent<Date> dateValueChangeEvent) {
|
||||
public void onValueChange(ValueChangeEvent<String> valueChangeEvent) {
|
||||
Date time = timePicker1PreviousDate;
|
||||
Date time1 = timePicker1.getDateTime();
|
||||
Date time2 = timePicker2.getDateTime();
|
||||
Date time1;
|
||||
Date time2;
|
||||
try {
|
||||
time1 = getDateFromTextBox(timePicker1);
|
||||
time2 = getDateFromTextBox(timePicker2);
|
||||
} catch (GeneratorException e) {
|
||||
return;
|
||||
}
|
||||
if (time2.after(time)) {
|
||||
// keep the same time difference if the interval is valid.
|
||||
long diff = time2.getTime() - time.getTime();
|
||||
timePicker2.setDateTime(addMilliseconds(time1, diff));
|
||||
setDateToTextBox(timePicker2, addMilliseconds(time1, diff));
|
||||
} else {
|
||||
// otherwise erase the end date and set it to startdate + one hour.
|
||||
timePicker2.setDateTime(addMilliseconds(time, ONE_HOUR));
|
||||
setDateToTextBox(timePicker2, addMilliseconds(time1, ONE_HOUR));
|
||||
}
|
||||
// no need to call onChange for timePicker1, since it will be called
|
||||
// for timePicker2 when changes are made.
|
||||
|
@ -94,9 +101,9 @@ public final class CalendarEventGenerator implements GeneratorSource {
|
|||
timePicker1PreviousDate = time1;
|
||||
}
|
||||
});
|
||||
timePicker2.addValueChangeHandler(new ValueChangeHandler<Date>() {
|
||||
timePicker2.addValueChangeHandler(new ValueChangeHandler<String>() {
|
||||
@Override
|
||||
public void onValueChange(ValueChangeEvent<Date> dateValueChangeEvent) {
|
||||
public void onValueChange(ValueChangeEvent<String> valueChangeEvent) {
|
||||
// Hack to stitch together these old and new APIs
|
||||
ChangeEvent event = new ChangeEvent() {
|
||||
@Override
|
||||
|
@ -263,8 +270,8 @@ public final class CalendarEventGenerator implements GeneratorSource {
|
|||
private String getDateTimeValues() throws GeneratorException {
|
||||
Date date1 = datePicker1.getValue();
|
||||
Date date2 = datePicker2.getValue();
|
||||
Date time1 = timePicker1.getDateTime();
|
||||
Date time2 = timePicker2.getDateTime();
|
||||
Date time1 = getDateFromTextBox(timePicker1);
|
||||
Date time2 = getDateFromTextBox(timePicker2);
|
||||
if (date1 == null || date2 == null || time1 == null || time2 == null) {
|
||||
throw new GeneratorException("Start and end dates/times must be set.");
|
||||
}
|
||||
|
@ -313,6 +320,20 @@ public final class CalendarEventGenerator implements GeneratorSource {
|
|||
return new Date(time1.getTime() + milliseconds);
|
||||
}
|
||||
|
||||
private static Date getDateFromTextBox(HasText textBox) throws GeneratorException {
|
||||
DateTimeFormat extractTime = DateTimeFormat.getFormat("HHmm");
|
||||
try {
|
||||
return extractTime.parseStrict(textBox.getText());
|
||||
} catch (IllegalArgumentException iae) {
|
||||
throw new GeneratorException("Invalid time");
|
||||
}
|
||||
}
|
||||
|
||||
private static void setDateToTextBox(HasText textBox, Date date) {
|
||||
DateTimeFormat extractTime = DateTimeFormat.getFormat("HHmm");
|
||||
textBox.setText(extractTime.format(date));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFocus() {
|
||||
eventName.setFocus(true);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
|
||||
<application>zxing</application>
|
||||
<version>7</version>
|
||||
<version>8</version>
|
||||
</appengine-web-app>
|
Binary file not shown.
|
@ -1,7 +1,8 @@
|
|||
application: zxing
|
||||
application: zxing-hrd
|
||||
version: 8
|
||||
runtime: python
|
||||
runtime: python27
|
||||
api_version: 1
|
||||
threadsafe: true
|
||||
|
||||
handlers:
|
||||
- url: /generator
|
||||
|
|
Loading…
Reference in a new issue