Skip to content

Commit

Permalink
Sync up with chart improvements, WTimeEdit improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
Koen Deforche committed Feb 25, 2016
1 parent e700619 commit 74ff9a2
Show file tree
Hide file tree
Showing 75 changed files with 5,171 additions and 2,095 deletions.
2 changes: 1 addition & 1 deletion .classpath
Expand Up @@ -25,6 +25,6 @@
<classpathentry kind="lib" path="lib/hamcrest-all-1.1.jar"/>
<classpathentry kind="lib" path="lib/jogl/jogl-all.jar"/>
<classpathentry kind="lib" path="lib/slf4j-simple-1.6.4.jar"/>
<classpathentry kind="lib" path="/home/koen/project/jwt/git/jwt/lib/antlr-3.5.2-runtime.jar"/>
<classpathentry kind="lib" path="lib/antlr-3.5.2-runtime.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
2 changes: 1 addition & 1 deletion examples/widgetgallery/.classpath
Expand Up @@ -8,7 +8,7 @@
<classpathentry kind="lib" path="lib/jwt-lib/commons-io-1.4.jar"/>
<classpathentry kind="lib" path="lib/jwt-lib/slf4j-api-1.6.4.jar"/>
<classpathentry kind="lib" path="lib/jwt-lib/slf4j-simple-1.6.4.jar"/>
<classpathentry kind="lib" path="lib/jwt-lib/antlr-runtime-3.5.jar"/>
<classpathentry kind="lib" path="lib/jwt-lib/antlr-runtime-3.5-2.jar"/>
<classpathentry kind="lib" path="lib/org.eclipse.jgit-2.2.0.201212191850-r.jar"/>
<classpathentry kind="lib" path="lib/jwt-lib/pdfjet-4.75.jar"/>
<classpathentry kind="lib" path="lib/jwt-lib/vecmath-1.5.2.jar"/>
Expand Down
@@ -0,0 +1,34 @@
/*
* Copyright (C) 2009 Emweb bvba, Leuven, Belgium.
*
* See the LICENSE file for terms of use.
*/
package eu.webtoolkit.jwt.examples.widgetgallery;

import java.util.*;
import java.util.regex.*;
import java.io.*;
import java.lang.ref.*;
import java.util.concurrent.locks.ReentrantLock;
import javax.servlet.http.*;
import javax.servlet.*;
import eu.webtoolkit.jwt.*;
import eu.webtoolkit.jwt.chart.*;
import eu.webtoolkit.jwt.utils.*;
import eu.webtoolkit.jwt.servlet.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

class ChartState extends WObject {
private static Logger logger = LoggerFactory.getLogger(ChartState.class);

public ChartState(WObject parent) {
super(parent);
}

public ChartState() {
this((WObject) null);
}

public SinModel model;
}
Expand Up @@ -65,7 +65,7 @@ public WWidget create() {
return FormWidgets.this.autoComplete();
}
}));
menu.addItem("Date entry",
menu.addItem("Date & Time entry",
DeferredWidget.deferCreate(new WidgetCreator() {
public WWidget create() {
return FormWidgets.this.dateEntry();
Expand Down Expand Up @@ -185,6 +185,7 @@ private WWidget dateEntry() {
result.bindWidget("CalendarSimple", CalendarSimple());
result.bindWidget("CalendarExtended", CalendarExtended());
result.bindWidget("DateEdit", DateEdit());
result.bindWidget("TimeEdit", TimeEdit());
result.bindWidget("DatePicker", DatePicker());
return result;
}
Expand Down Expand Up @@ -592,8 +593,8 @@ WWidget ComboBoxModel() {
public void trigger() {
WString countryName = cb.getCurrentText();
int row = cb.getCurrentIndex();
String countryCode = (String) model.getData(
model.getIndex(row, 0), ItemDataRole.UserRole);
String countryCode = ((String) model.getData(
model.getIndex(row, 0), ItemDataRole.UserRole));
out.setText(new WString("You selected {1} with key {2}.").arg(
countryName).arg(countryCode));
}
Expand Down Expand Up @@ -782,6 +783,56 @@ public void trigger() {
return form;
}

WWidget TimeEdit() {
WTemplate form = new WTemplate(WString.tr("timeEdit-template"));
form.addFunction("id", WTemplate.Functions.id);
final WTimeEdit de1 = new WTimeEdit();
form.bindWidget("from", de1);
form.bindString("from-format", de1.getFormat());
de1.setTime(WTime.getCurrentTime());
final WTimeEdit de2 = new WTimeEdit();
form.bindWidget("to", de2);
de2.setFormat("h:mm:ss.SSS a");
de2.setTime(WTime.getCurrentTime().addSecs(60 * 15));
form.bindString("to-format", de2.getFormat());
WPushButton button = new WPushButton("Save");
form.bindWidget("save", button);
final WText out = new WText();
form.bindWidget("out", out);
de1.changed().addListener(this, new Signal.Listener() {
public void trigger() {
if (de1.validate() == WValidator.State.Valid) {
out.setText("Time picker 1 is changed.");
}
}
});
de2.changed().addListener(this, new Signal.Listener() {
public void trigger() {
if (de1.validate() == WValidator.State.Valid) {
out.setText("Time picker 2 is changed.");
}
}
});
button.clicked().addListener(this, new Signal.Listener() {
public void trigger() {
if (de1.getText().length() == 0 || de2.getText().length() == 0) {
out.setText("You should enter two times!");
} else {
long secs = de1.getTime().secsTo(de2.getTime()) + 1;
if (secs <= 60 * 10) {
out.setText("This is a really small range of time");
} else {
out.setText(new WString(
"So, you want your package to be delivered between {1} and {2} ?...")
.arg(de1.getTime().toString()).arg(
de2.getTime().toString()));
}
}
}
});
return form;
}

WWidget DatePicker() {
WTemplate form = new WTemplate(WString.tr("dateEdit-template"));
form.addFunction("id", WTemplate.Functions.id);
Expand Down
Expand Up @@ -196,7 +196,7 @@ public ChildIndex(int aParent, int anIndex) {
}

public boolean equals(Object o) {
GitModel.ChildIndex other = (ChildIndex) o;
GitModel.ChildIndex other = ((ChildIndex) o);
return this.parentId == other.parentId && this.index == other.index;
}

Expand Down
Expand Up @@ -205,7 +205,7 @@ private void addMapTypeControl(final CharSequence description,

private void setMapTypeControl(int row) {
Object mtc = this.mapTypeModel_.getData(row, 0, ItemDataRole.UserRole);
this.map_.setMapTypeControl((WGoogleMap.MapTypeControl) mtc);
this.map_.setMapTypeControl(((WGoogleMap.MapTypeControl) mtc));
}

private List<WGoogleMap.Coordinate> getRoadDescription() {
Expand Down
Expand Up @@ -49,6 +49,12 @@ public WWidget create() {
return GraphicsWidgets.this.scatterPlot();
}
}));
menu.addItem("Axis slider widget",
DeferredWidget.deferCreate(new WidgetCreator() {
public WWidget create() {
return GraphicsWidgets.this.axisSliderWidget();
}
}));
menu.addItem("Pie chart",
DeferredWidget.deferCreate(new WidgetCreator() {
public WWidget create() {
Expand Down Expand Up @@ -112,6 +118,14 @@ private WWidget scatterPlot() {
return result;
}

private WWidget axisSliderWidget() {
WTemplate result = new TopicTemplate("graphics-AxisSliderWidget");
result.bindWidget("AxisSliderWidget", AxisSliderWidget());
result.bindWidget("AxisSliderWidgetDifferentDataSeries",
AxisSliderWidgetDifferentDataSeries());
return result;
}

private WWidget pieChart() {
WTemplate result = new TopicTemplate("graphics-PieChart");
result.bindWidget("PieChart", PieChart());
Expand Down Expand Up @@ -443,15 +457,120 @@ WWidget ScatterPlotInteractive() {
chart.setXSeriesColumn(0);
chart.setType(ChartType.ScatterPlot);
chart.getAxis(Axis.XAxis).setScale(AxisScale.DateScale);
chart.getAxis(Axis.XAxis).setMaxZoom(16.0);
double min = StringUtils.asNumber(model.getData(0, 0));
double max = StringUtils.asNumber(model.getData(
model.getRowCount() - 1, 0));
chart.getAxis(Axis.XAxis).setMinimumZoomRange((max - min) / 16.0);
{
WDataSeries s = new WDataSeries(2, SeriesType.LineSeries);
s.setShadow(new WShadow(3, 3, new WColor(0, 0, 0, 127), 3));
chart.addSeries(s);
}
{
WDataSeries s = new WDataSeries(3, SeriesType.LineSeries);
s.setShadow(new WShadow(3, 3, new WColor(0, 0, 0, 127), 3));
chart.addSeries(s);
}
chart.resize(new WLength(800), new WLength(400));
chart.setPanEnabled(true);
chart.setZoomEnabled(true);
chart.setMargin(WLength.Auto, EnumSet.of(Side.Left, Side.Right));
return container;
}

WWidget AxisSliderWidget() {
WContainerWidget container = new WContainerWidget();
WStandardItemModel model = CsvUtil.csvToModel("" + "timeseries.csv",
container);
if (!(model != null)) {
return container;
}
for (int row = 0; row < model.getRowCount(); ++row) {
WString s = StringUtils.asString(model.getData(row, 0));
WDate date = WDate.fromString(s.toString(), "dd/MM/yy");
model.setData(row, 0, date);
}
WCartesianChart chart = new WCartesianChart(container);
chart.setBackground(new WBrush(new WColor(220, 220, 220)));
chart.setModel(model);
chart.setXSeriesColumn(0);
chart.setType(ChartType.ScatterPlot);
chart.getAxis(Axis.XAxis).setScale(AxisScale.DateScale);
double min = StringUtils.asNumber(model.getData(0, 0));
double max = StringUtils.asNumber(model.getData(
model.getRowCount() - 1, 0));
chart.getAxis(Axis.XAxis).setMinimumZoomRange((max - min) / 16.0);
WDataSeries s = new WDataSeries(2, SeriesType.LineSeries);
s.setShadow(new WShadow(3, 3, new WColor(0, 0, 0, 127), 3));
chart.addSeries(s);
chart.resize(new WLength(800), new WLength(400));
chart.setPanEnabled(true);
chart.setZoomEnabled(true);
chart.setMargin(WLength.Auto, EnumSet.of(Side.Left, Side.Right));
WAxisSliderWidget sliderWidget = new WAxisSliderWidget(chart, 2,
WAxisSliderWidget sliderWidget = new WAxisSliderWidget(s, container);
sliderWidget.resize(new WLength(800), new WLength(80));
sliderWidget.setSelectionAreaPadding(40,
EnumSet.of(Side.Left, Side.Right));
sliderWidget.setMargin(WLength.Auto, EnumSet.of(Side.Left, Side.Right));
return container;
}

WWidget AxisSliderWidgetDifferentDataSeries() {
WContainerWidget container = new WContainerWidget();
final ChartState state = new ChartState(container);
state.model = new SinModel(-3.14159265358979323846,
3.14159265358979323846);
final WCartesianChart chart = new WCartesianChart(container);
chart.setBackground(new WBrush(new WColor(220, 220, 220)));
chart.setType(ChartType.ScatterPlot);
WAbstractChartModel roughModel = new SinModel(-3.14159265358979323846,
3.14159265358979323846, container);
WDataSeries roughSeries = new WDataSeries(1, SeriesType.LineSeries);
roughSeries.setModel(roughModel);
roughSeries.setXSeriesColumn(0);
roughSeries.setHidden(true);
chart.addSeries(roughSeries);
final WDataSeries series = new WDataSeries(1, SeriesType.LineSeries);
series.setModel(state.model);
series.setXSeriesColumn(0);
series.setShadow(new WShadow(3, 3, new WColor(0, 0, 0, 127), 3));
chart.addSeries(series);
chart.getAxis(Axis.XAxis).zoomRangeChanged()
.addListener(this, new Signal.Listener() {
public void trigger() {
double minX = chart.getAxis(Axis.XAxis)
.getZoomMinimum();
double maxX = chart.getAxis(Axis.XAxis)
.getZoomMaximum();
double dX = maxX - minX;
minX = minX - dX / 2.0;
if (minX < -3.14159265358979323846) {
minX = -3.14159265358979323846;
}
maxX = maxX + dX / 2.0;
if (maxX > 3.14159265358979323846) {
maxX = 3.14159265358979323846;
}
if (state.model.getMinimum() != minX
|| state.model.getMaximum() != maxX) {
;
state.model = new SinModel(minX, maxX);
series.setModel(state.model);
}
}
});
chart.getAxis(Axis.XAxis).setMinimumZoomRange(
3.14159265358979323846 / 8.0);
chart.getAxis(Axis.XAxis).setMinimum(-3.5);
chart.getAxis(Axis.XAxis).setMaximum(3.5);
chart.getAxis(Axis.YAxis).setMinimumZoomRange(0.1);
chart.getAxis(Axis.YAxis).setMinimum(-1.5);
chart.getAxis(Axis.YAxis).setMaximum(1.5);
chart.resize(new WLength(800), new WLength(400));
chart.setPanEnabled(true);
chart.setZoomEnabled(true);
chart.setMargin(WLength.Auto, EnumSet.of(Side.Left, Side.Right));
WAxisSliderWidget sliderWidget = new WAxisSliderWidget(roughSeries,
container);
sliderWidget.resize(new WLength(800), new WLength(80));
sliderWidget.setSelectionAreaPadding(40,
Expand Down
@@ -0,0 +1,63 @@
/*
* Copyright (C) 2009 Emweb bvba, Leuven, Belgium.
*
* See the LICENSE file for terms of use.
*/
package eu.webtoolkit.jwt.examples.widgetgallery;

import java.util.*;
import java.util.regex.*;
import java.io.*;
import java.lang.ref.*;
import java.util.concurrent.locks.ReentrantLock;
import javax.servlet.http.*;
import javax.servlet.*;
import eu.webtoolkit.jwt.*;
import eu.webtoolkit.jwt.chart.*;
import eu.webtoolkit.jwt.utils.*;
import eu.webtoolkit.jwt.servlet.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

class SinModel extends WAbstractChartModel {
private static Logger logger = LoggerFactory.getLogger(SinModel.class);

public SinModel(double minimum, double maximum, WObject parent) {
super(parent);
this.minimum_ = minimum;
this.maximum_ = maximum;
}

public SinModel(double minimum, double maximum) {
this(minimum, maximum, (WObject) null);
}

public double getData(int row, int column) {
double x = this.minimum_ + row * (this.maximum_ - this.minimum_)
/ (this.getRowCount() - 1);
if (column == 0) {
return x;
} else {
return Math.sin(x) + Math.sin(x * 100.0) / 40.0;
}
}

public int getColumnCount() {
return 2;
}

public int getRowCount() {
return 100;
}

public double getMinimum() {
return this.minimum_;
}

public double getMaximum() {
return this.maximum_;
}

private double minimum_;
private double maximum_;
}
Expand Up @@ -105,8 +105,8 @@ public WString getUserData() {
}

public String countryCode(int row) {
return (String) this.countryModel_.getData(row, 0,
ItemDataRole.UserRole);
return ((String) this.countryModel_.getData(row, 0,
ItemDataRole.UserRole));
}

private static final Map<String, List<String>> cities = getCityMap();
Expand Down

0 comments on commit 74ff9a2

Please sign in to comment.