[PATCH 1 of 3] (issue1764) Handle date ranges in chart properties editor
Wald Commits
scm-commit at wald.intevation.org
Wed Oct 29 19:52:21 CET 2014
# HG changeset patch
# User Andre Heinecke <andre.heinecke at intevation.de>
# Date 1414608558 -3600
# Node ID 7003cf5c19edf99e7425f28c79b451dd5807c04b
# Parent 1326fc65638c82e31297108bffb0f83a7549a9ad
(issue1764) Handle date ranges in chart properties editor
diff -r 1326fc65638c -r 7003cf5c19ed gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Wed Oct 29 16:02:37 2014 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Wed Oct 29 19:49:18 2014 +0100
@@ -1409,5 +1409,9 @@
String station();
String station_name();
+
+ String lower_time();
+
+ String upper_time();
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1326fc65638c -r 7003cf5c19ed gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Wed Oct 29 16:02:37 2014 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Wed Oct 29 19:49:18 2014 +0100
@@ -748,3 +748,6 @@
ld_locations=Station(s)
potentiel = Potential
+
+lower_time = From
+upper_time = Until
diff -r 1326fc65638c -r 7003cf5c19ed gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Wed Oct 29 16:02:37 2014 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Wed Oct 29 19:49:18 2014 +0100
@@ -741,3 +741,6 @@
potentiel = Potentiell
bandwidthcolot = Bandbreitenfarbe
+lower_time = Von
+upper_time = Bis
+
diff -r 1326fc65638c -r 7003cf5c19ed gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_en.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_en.properties Wed Oct 29 16:02:37 2014 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_en.properties Wed Oct 29 19:49:18 2014 +0100
@@ -778,3 +778,5 @@
DESCRIPTION = Description
+lower_time = From
+upper_time = Until
diff -r 1326fc65638c -r 7003cf5c19ed gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/ChartPropertiesEditor.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/ChartPropertiesEditor.java Wed Oct 29 16:02:37 2014 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/ChartPropertiesEditor.java Wed Oct 29 19:49:18 2014 +0100
@@ -21,6 +21,7 @@
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
+import com.smartgwt.client.widgets.form.fields.DateItem;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
@@ -30,6 +31,7 @@
import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
+import com.smartgwt.client.widgets.layout.Layout;
import com.smartgwt.client.widgets.tab.Tab;
import com.smartgwt.client.widgets.tab.TabSet;
@@ -53,6 +55,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Date;
/**
* Dialog for the Chart-Properties, constructed from respective xml document.
@@ -204,8 +207,6 @@
scale.setMargin(2);
DynamicForm form1 = new DynamicForm();
- DynamicForm form2 = new DynamicForm();
- form2.setNumCols(6);
StringProperty label =
(StringProperty)pg.getPropertyByName("label");
@@ -232,67 +233,104 @@
((IntegerProperty)
origPg.getPropertyByName("font-size")).getValue());
- DoubleProperty upper =
- (DoubleProperty)pg.getPropertyByName("upper");
- final FormItem range1 = createDoubleProperty(upper);
- range1.setName("rangeupper");
- range1.setWidth(70);
- range1.setValue(
- ((DoubleProperty)
- origPg.getPropertyByName("upper")).toUIString());
-
- DoubleProperty lower =
- (DoubleProperty)pg.getPropertyByName("lower");
- final FormItem range2 = createDoubleProperty(lower);
- range2.setName("rangelower");
- range2.setWidth(70);
- range2.setValue(
- ((DoubleProperty)
- origPg.getPropertyByName("lower")).toUIString());
-
- BooleanProperty fixation =
- (BooleanProperty)pg.getPropertyByName("fixation");
- FormItem fix = createBooleanProperty(fixation);
- fix.setValue(((BooleanProperty)
- origPg.getPropertyByName("fixation")).getValue().booleanValue());
- fix.setWidth(30);
-
- fix.addChangedHandler(new ChangedHandler() {
- @Override
- public void onChanged(ChangedEvent e) {
- if ((Boolean)e.getValue()) {
- range1.enable();
- range2.enable();
- }
- else {
- range1.disable();
- range2.disable();
- }
- }
- });
- if (fix.getValue().toString().equals("true")) {
- range1.enable();
- range2.enable();
- }
- else {
- range1.disable();
- range2.disable();
- }
-
form1.setFields(title, fs);
- form2.setFields(fix, range2, range1);
-
- HLayout scaleLayout = new HLayout();
- scaleLayout.setHeight(30);
- scaleLayout.addMember(scale);
- scaleLayout.addMember(form2);
- scaleLayout.setStyleName("property-dialog-axis");
VLayout root = new VLayout();
root.addMember(form1);
- root.addMember(scaleLayout);
root.setHeight(90);
+
+ DoubleProperty upper =
+ (DoubleProperty)pg.getPropertyByName("upper");
+ DoubleProperty lower =
+ (DoubleProperty)pg.getPropertyByName("lower");
+
+ FormItem range1candidate = null;
+ FormItem range2candidate = null;
+ Layout scaleLayout;
+ DynamicForm form2 = new DynamicForm();
+
+ if (upper != null && lower != null) {
+ // Normal axis with double values
+ scaleLayout = new HLayout();
+ form2.setNumCols(6);
+ range1candidate = createDoubleProperty(upper);
+ range1candidate.setName("rangeupper");
+ range1candidate.setWidth(70);
+ range1candidate.setValue(
+ ((DoubleProperty)
+ origPg.getPropertyByName("upper")).toUIString());
+
+ range2candidate = createDoubleProperty(lower);
+ range2candidate.setName("rangelower");
+ range2candidate.setWidth(70);
+ range2candidate.setValue(
+ ((DoubleProperty)
+ origPg.getPropertyByName("lower")).toUIString());
+ } else {
+ // Time range axis
+ scaleLayout = new VLayout();
+ StringProperty dateUpper = (StringProperty)pg.getPropertyByName("upper-time");
+ StringProperty dateLower = (StringProperty)pg.getPropertyByName("lower-time");
+ if (dateUpper != null && dateLower != null) {
+ DateItem lowerDI = createDateProperty(dateLower);
+ DateItem upperDI = createDateProperty(dateUpper);
+ StringProperty origUp = (StringProperty)origPg.getPropertyByName("upper-time");
+ StringProperty origLow = (StringProperty)origPg.getPropertyByName("lower-time");
+ try {
+ lowerDI.setStartDate(new Date(-2208988800000L));
+ lowerDI.setValue(new Date(Long.valueOf(origLow.getValue())));
+ upperDI.setValue(new Date(Long.valueOf(origUp.getValue())));
+ } catch (NumberFormatException e) {
+ // Just leave it at default then.
+ }
+ range1candidate = upperDI;
+ range2candidate = lowerDI;
+ }
+ }
+
+ if (range1candidate != null && range2candidate != null) {
+ final FormItem range1 = range1candidate;
+ final FormItem range2 = range2candidate;
+
+ BooleanProperty fixation =
+ (BooleanProperty)pg.getPropertyByName("fixation");
+ FormItem fix = createBooleanProperty(fixation);
+ fix.setValue(((BooleanProperty)
+ origPg.getPropertyByName("fixation")).getValue().booleanValue());
+ fix.setWidth(30);
+
+ fix.addChangedHandler(new ChangedHandler() {
+ @Override
+ public void onChanged(ChangedEvent e) {
+ if ((Boolean)e.getValue()) {
+ range1.enable();
+ range2.enable();
+ }
+ else {
+ range1.disable();
+ range2.disable();
+ }
+ }
+ });
+ if (fix.getValue().toString().equals("true")) {
+ range1.enable();
+ range2.enable();
+ }
+ else {
+ range1.disable();
+ range2.disable();
+ }
+ form2.setFields(fix, range2, range1);
+ scaleLayout.setHeight(30);
+ scaleLayout.addMember(scale);
+ scaleLayout.addMember(form2);
+ scaleLayout.setStyleName("property-dialog-axis");
+ root.addMember(scaleLayout);
+ } else {
+ GWT.log("Invalid settings document. Without upper/lower.");
+ }
+
return root;
}
return null;
@@ -458,6 +496,25 @@
return item;
}
+ protected DateItem createDateProperty(final StringProperty sp) {
+ String name = sp.getName();
+ if (name.contains("-")) {
+ name = name.replace("-", "_");
+ }
+
+ DateItem item = new DateItem(name, MSG.getString(name));
+ item.setTitleAlign(Alignment.LEFT);
+ item.setTitleStyle("color:#000;");
+
+ item.addBlurHandler(new BlurHandler() {
+ @Override
+ public void onBlur(BlurEvent e) {
+ DateItem di = (DateItem)e.getItem();
+ sp.setValue(Long.toString(di.getValueAsDate().getTime()));
+ }
+ });
+ return item;
+ }
/**
*
More information about the Dive4Elements-commits
mailing list