Mercurial > dive4elements > river
changeset 9099:850ce16034e9
2.3.4.1.10 Berechnung mit Start-km > End-km
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RangeAccess.java Mon May 28 10:56:57 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RangeAccess.java Mon May 28 13:22:45 2018 +0200 @@ -252,5 +252,13 @@ return DoubleUtil.explode(getFrom(), getTo(), step); } + + public final double getLowerKm() { + return Math.min(this.getFrom(), this.getTo()); + } + + public final double getUpperKm() { + return Math.max(this.getFrom(), this.getTo()); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixCalculation.java Mon May 28 10:56:57 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixCalculation.java Mon May 28 13:22:45 2018 +0200 @@ -8,30 +8,6 @@ package org.dive4elements.river.artifacts.model.fixings; -import org.dive4elements.artifacts.common.utils.StringUtils; - -import org.dive4elements.river.artifacts.access.FixAccess; - -import org.dive4elements.river.artifacts.math.fitting.Function; -import org.dive4elements.river.artifacts.math.fitting.FunctionFactory; - -import org.dive4elements.river.artifacts.model.Calculation; -import org.dive4elements.river.artifacts.model.CalculationResult; -import org.dive4elements.river.artifacts.model.FixingsColumn; -import org.dive4elements.river.artifacts.model.FixingsColumnFactory; - -import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing.Filter; - -import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing; -import org.dive4elements.river.artifacts.model.FixingsOverview.IdsFilter; - -import org.dive4elements.river.artifacts.model.FixingsOverview; -import org.dive4elements.river.artifacts.model.FixingsOverviewFactory; -import org.dive4elements.river.artifacts.model.Parameters; - -import org.dive4elements.river.utils.DoubleUtil; -import org.dive4elements.river.utils.KMIndex; - import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -39,99 +15,104 @@ import java.util.Map; import org.apache.log4j.Logger; +import org.dive4elements.artifacts.common.utils.StringUtils; +import org.dive4elements.river.artifacts.access.FixAccess; +import org.dive4elements.river.artifacts.math.fitting.Function; +import org.dive4elements.river.artifacts.math.fitting.FunctionFactory; +import org.dive4elements.river.artifacts.model.Calculation; +import org.dive4elements.river.artifacts.model.CalculationResult; +import org.dive4elements.river.artifacts.model.FixingsColumn; +import org.dive4elements.river.artifacts.model.FixingsColumnFactory; +import org.dive4elements.river.artifacts.model.FixingsOverview; +import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing; +import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing.Filter; +import org.dive4elements.river.artifacts.model.FixingsOverview.IdsFilter; +import org.dive4elements.river.artifacts.model.FixingsOverviewFactory; +import org.dive4elements.river.artifacts.model.Parameters; +import org.dive4elements.river.utils.DoubleUtil; +import org.dive4elements.river.utils.KMIndex; /** Calculation base class for fix. */ -public abstract class FixCalculation -extends Calculation -{ +public abstract class FixCalculation extends Calculation { private static Logger log = Logger.getLogger(FixCalculation.class); public static final double EPSILON = 1e-4; - public static final String [] STANDARD_COLUMNS = { - "km", "chi_sqr", "max_q", "std-dev" - }; + public static final String[] STANDARD_COLUMNS = { "km", "chi_sqr", "max_q", "std-dev" }; protected static class FitResult { - protected Parameters parameters; - protected KMIndex<QWD []> referenced; - protected KMIndex<QWI []> outliers; + protected Parameters parameters; + protected KMIndex<QWD[]> referenced; + protected KMIndex<QWI[]> outliers; public FitResult() { } - public FitResult( - Parameters parameters, - KMIndex<QWD []> referenced, - KMIndex<QWI []> outliers - ) { + public FitResult(final Parameters parameters, final KMIndex<QWD[]> referenced, final KMIndex<QWI[]> outliers) { this.parameters = parameters; this.referenced = referenced; - this.outliers = outliers; + this.outliers = outliers; } public Parameters getParameters() { - return parameters; + return this.parameters; } - public KMIndex<QWD []> getReferenced() { - return referenced; + public KMIndex<QWD[]> getReferenced() { + return this.referenced; } - public KMIndex<QWI []> getOutliers() { - return outliers; + public KMIndex<QWI[]> getOutliers() { + return this.outliers; } } // class FitResult - /** Helper class to bundle the meta information of a column - * and the real data. + /** + * Helper class to bundle the meta information of a column + * and the real data. */ protected static class Column { protected Fixing.Column meta; protected FixingsColumn data; - protected int index; + protected int index; public Column() { } - public Column(Fixing.Column meta, FixingsColumn data, int index) { - this.meta = meta; - this.data = data; + public Column(final Fixing.Column meta, final FixingsColumn data, final int index) { + this.meta = meta; + this.data = data; this.index = index; } public Date getDate() { - return meta.getStartTime(); + return this.meta.getStartTime(); } public String getDescription() { - return meta.getDescription(); + return this.meta.getDescription(); } public int getIndex() { - return index; + return this.index; } public int getId() { - return meta.getId(); + return this.meta.getId(); } - public boolean getQW( - double km, - double [] qs, - double [] ws, - int index - ) { - qs[index] = data.getQ(km); - return data.getW(km, ws, index); + public boolean getQW(final double km, final double[] qs, final double[] ws, final int index) { + qs[index] = this.data.getQ(km); + return this.data.getW(km, ws, index); } - public boolean getQW(double km, double [] wq) { - data.getW(km, wq, 0); - if (Double.isNaN(wq[0])) return false; - wq[1] = data.getQ(km); + public boolean getQW(final double km, final double[] wq) { + this.data.getW(km, wq, 0); + if (Double.isNaN(wq[0])) + return false; + wq[1] = this.data.getQ(km); return !Double.isNaN(wq[1]); } } // class Column @@ -144,49 +125,46 @@ protected Map<Integer, Column> columns; public ColumnCache() { - columns = new HashMap<Integer, Column>(); + this.columns = new HashMap<>(); } - public Column getColumn(Fixing.Column meta) { - Integer key = meta.getId(); - Column column = columns.get(key); + public Column getColumn(final Fixing.Column meta) { + final Integer key = meta.getId(); + Column column = this.columns.get(key); if (column == null) { - FixingsColumn data = FixingsColumnFactory - .getInstance() - .getColumnData(meta); + final FixingsColumn data = FixingsColumnFactory.getInstance().getColumnData(meta); if (data != null) { - column = new Column(meta, data, columns.size()); - columns.put(key, column); + column = new Column(meta, data, this.columns.size()); + this.columns.put(key, column); } } return column; } } // class ColumnCache - - protected String river; - protected double from; - protected double to; - protected double step; + protected String river; + protected double from; + protected double to; + protected double step; protected boolean preprocessing; - protected String function; - protected int [] events; - protected int qSectorStart; - protected int qSectorEnd; + protected String function; + protected int[] events; + protected int qSectorStart; + protected int qSectorEnd; public FixCalculation() { } - public FixCalculation(FixAccess access) { - String river = access.getRiverName(); - Double from = access.getFrom(); - Double to = access.getTo(); - Double step = access.getStep(); - String function = access.getFunction(); - int [] events = access.getEvents(); - Integer qSectorStart = access.getQSectorStart(); - Integer qSectorEnd = access.getQSectorEnd(); - Boolean preprocessing = access.getPreprocessing(); + public FixCalculation(final FixAccess access) { + final String river = access.getRiverName(); + final Double from = access.getLowerKm(); + final Double to = access.getUpperKm(); + final Double step = access.getStep(); + final String function = access.getFunction(); + final int[] events = access.getEvents(); + final Integer qSectorStart = access.getQSectorStart(); + final Integer qSectorEnd = access.getQSectorEnd(); + final Boolean preprocessing = access.getPreprocessing(); if (river == null) { addProblem("fix.missing.river"); @@ -225,57 +203,51 @@ } if (!hasProblems()) { - this.river = river; - this.from = from; - this.to = to; - this.step = step; - this.function = function; - this.events = events; - this.qSectorStart = qSectorStart; - this.qSectorEnd = qSectorEnd; + this.river = river; + this.from = from; + this.to = to; + this.step = step; + this.function = function; + this.events = events; + this.qSectorStart = qSectorStart; + this.qSectorEnd = qSectorEnd; this.preprocessing = preprocessing; } } - protected static String toString( - String [] parameterNames, - double [] values - ) { - StringBuilder sb = new StringBuilder(); + protected static String toString(final String[] parameterNames, final double[] values) { + final StringBuilder sb = new StringBuilder(); for (int i = 0; i < parameterNames.length; ++i) { - if (i > 0) sb.append(", "); + if (i > 0) + sb.append(", "); sb.append(parameterNames[i]).append(": ").append(values[i]); } return sb.toString(); } - - /** Create filter to accept only the chosen events. - * This factored out out to be overwritten. + /** + * Create filter to accept only the chosen events. + * This factored out out to be overwritten. */ protected Filter createFilter() { - return new IdsFilter(events); + return new IdsFilter(this.events); } - protected List<Column> getEventColumns( - FixingsOverview overview, - ColumnCache cc - ) { - FixingsColumnFactory fcf = FixingsColumnFactory.getInstance(); + protected List<Column> getEventColumns(final FixingsOverview overview, final ColumnCache cc) { + final FixingsColumnFactory fcf = FixingsColumnFactory.getInstance(); - Filter filter = createFilter(); - - List<Fixing.Column> metas = overview.filter(null, filter); + final Filter filter = createFilter(); - List<Column> columns = new ArrayList<Column>(metas.size()); + final List<Fixing.Column> metas = overview.filter(null, filter); - for (Fixing.Column meta: metas) { + final List<Column> columns = new ArrayList<>(metas.size()); - Column data = cc.getColumn(meta); + for (final Fixing.Column meta : metas) { + + final Column data = cc.getColumn(meta); if (data == null) { addProblem("fix.cannot.load.data"); - } - else { + } else { columns.add(data); } } @@ -284,12 +256,8 @@ } // Fit a function to the given points from fixation. - protected FitResult doFitting( - FixingsOverview overview, - ColumnCache cc, - Function func - ) { - boolean debug = log.isDebugEnabled(); + protected FitResult doFitting(final FixingsOverview overview, final ColumnCache cc, final Function func) { + final boolean debug = log.isDebugEnabled(); final List<Column> eventColumns = getEventColumns(overview, cc); @@ -298,26 +266,19 @@ return null; } - final double [] qs = new double[eventColumns.size()]; - final double [] ws = new double[qs.length]; - final boolean [] interpolated = new boolean[ws.length]; + final double[] qs = new double[eventColumns.size()]; + final double[] ws = new double[qs.length]; + final boolean[] interpolated = new boolean[ws.length]; - Fitting.QWDFactory qwdFactory = new Fitting.QWDFactory() { + final Fitting.QWDFactory qwdFactory = new Fitting.QWDFactory() { @Override - public QWD create(double q, double w) { + public QWD create(final double q, final double w) { // Check all the event columns for close match // and take the description and the date from meta. for (int i = 0; i < qs.length; ++i) { - if (Math.abs(qs[i]-q) < EPSILON - && Math.abs(ws[i]-w) < EPSILON) { - Column column = eventColumns.get(i); - return new QWD( - qs[i], ws[i], - column.getDescription(), - column.getDate(), - interpolated[i], - 0d, - column.getId()); // Use database id here + if (Math.abs(qs[i] - q) < EPSILON && Math.abs(ws[i] - w) < EPSILON) { + final Column column = eventColumns.get(i); + return new QWD(qs[i], ws[i], column.getDescription(), column.getDate(), interpolated[i], 0d, column.getId()); // Use database id here } } log.warn("cannot find column for (" + q + ", " + w + ")"); @@ -325,35 +286,33 @@ } }; - Fitting fitting = new Fitting(func, qwdFactory, preprocessing); + final Fitting fitting = new Fitting(func, qwdFactory, this.preprocessing); - String [] parameterNames = func.getParameterNames(); + final String[] parameterNames = func.getParameterNames(); - Parameters results = - new Parameters( - StringUtils.join(STANDARD_COLUMNS, parameterNames)); + final Parameters results = new Parameters(StringUtils.join(STANDARD_COLUMNS, parameterNames)); boolean invalid = false; - double [] kms = DoubleUtil.explode(from, to, step / 1000.0); + final double[] kms = DoubleUtil.explode(this.from, this.to, this.step / 1000.0); if (debug) { log.debug("number of kms: " + kms.length); } - KMIndex<QWI []> outliers = new KMIndex<QWI []>(); - KMIndex<QWD []> referenced = new KMIndex<QWD []>(kms.length); + final KMIndex<QWI[]> outliers = new KMIndex<>(); + final KMIndex<QWD[]> referenced = new KMIndex<>(kms.length); - int kmIndex = results.columnIndex("km"); - int chiSqrIndex = results.columnIndex("chi_sqr"); - int maxQIndex = results.columnIndex("max_q"); - int stdDevIndex = results.columnIndex("std-dev"); - int [] parameterIndices = results.columnIndices(parameterNames); + final int kmIndex = results.columnIndex("km"); + final int chiSqrIndex = results.columnIndex("chi_sqr"); + final int maxQIndex = results.columnIndex("max_q"); + final int stdDevIndex = results.columnIndex("std-dev"); + final int[] parameterIndices = results.columnIndices(parameterNames); int numFailed = 0; - for (int i = 0; i < kms.length; ++i) { - double km = kms[i]; + for (final double km2 : kms) { + final double km = km2; // Fill Qs and Ws from event columns. for (int j = 0; j < ws.length; ++j) { @@ -369,7 +328,7 @@ continue; } - QWD [] refs = fitting.referencedToArray(); + final QWD[] refs = fitting.referencedToArray(); referenced.add(km, refs); @@ -377,17 +336,17 @@ outliers.add(km, fitting.outliersToArray()); } - int row = results.newRow(); - double [] values = fitting.getParameters(); + final int row = results.newRow(); + final double[] values = fitting.getParameters(); results.set(row, kmIndex, km); results.set(row, chiSqrIndex, fitting.getChiSquare()); results.set(row, stdDevIndex, fitting.getStandardDeviation()); - results.set(row, maxQIndex, fitting.getMaxQ()); + results.set(row, maxQIndex, fitting.getMaxQ()); invalid |= results.set(row, parameterIndices, values); if (debug) { - log.debug("km: "+km+" " + toString(parameterNames, values)); + log.debug("km: " + km + " " + toString(parameterNames, values)); } } @@ -404,22 +363,17 @@ outliers.sort(); referenced.sort(); - return new FitResult( - results, - referenced, - outliers); + return new FitResult(results, referenced, outliers); } public CalculationResult calculate() { - FixingsOverview overview = - FixingsOverviewFactory.getOverview(river); + final FixingsOverview overview = FixingsOverviewFactory.getOverview(this.river); if (overview == null) { addProblem("fix.no.overview.available"); } - Function func = FunctionFactory.getInstance() - .getFunction(function); + final Function func = FunctionFactory.getInstance().getFunction(this.function); if (func == null) { addProblem("fix.invalid.function.name"); @@ -428,13 +382,13 @@ if (hasProblems()) { return new CalculationResult(this); } - CalculationResult result = innerCalculate(overview, func); + final CalculationResult result = innerCalculate(overview, func); if (result != null) { // Workaraound to deal with same dates in data set - Object o = result.getData(); + final Object o = result.getData(); if (o instanceof FixResult) { - FixResult fr = (FixResult)o; + final FixResult fr = (FixResult) o; fr.makeReferenceEventsDatesUnique(); fr.remapReferenceIndicesToRank(); } @@ -443,9 +397,6 @@ return result; } - protected abstract CalculationResult innerCalculate( - FixingsOverview overview, - Function function - ); + protected abstract CalculationResult innerCalculate(FixingsOverview overview, Function function); } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/NaviChartOutputTab.java Mon May 28 10:56:57 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/NaviChartOutputTab.java Mon May 28 13:22:45 2018 +0200 @@ -86,8 +86,8 @@ catch (final NumberFormatException nfe) { this.collectionView.setSteps(100d); } - fromKm = fixFilter.getFromKm(); - toKm = fixFilter.getToKm(); + fromKm = fixFilter.getLowerKm(); + toKm = fixFilter.getUpperKm(); } else { // Probably WINFOArtifact kind of artifact. final String ld_step = art.getArtifactDescription().getDataValueAsString("ld_step"); @@ -292,7 +292,7 @@ if (this.collectionView.getArtifact() instanceof AbstractFixBunduArtifact) { if (this.collectionView.getCurrentKm() == -1) { final AbstractFixBunduArtifact fix = (AbstractFixBunduArtifact) this.collectionView.getArtifact(); - this.collectionView.setCurrentKm(fix.getFilter().getFromKm()); + this.collectionView.setCurrentKm(fix.getFilter().getLowerKm()); } } else if (this.collectionView.getCurrentKm() == -1) { this.collectionView.setCurrentKm(this.collectionView.getArtifact().getArtifactDescription().getKMRange()[0]);
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixLocationPanel.java Mon May 28 10:56:57 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixLocationPanel.java Mon May 28 13:22:45 2018 +0200 @@ -8,45 +8,39 @@ package org.dive4elements.river.client.client.ui.fixation; -import java.util.List; import java.util.ArrayList; - -import com.google.gwt.core.client.GWT; - -import com.smartgwt.client.widgets.Canvas; -import com.smartgwt.client.widgets.Label; - -import com.smartgwt.client.widgets.layout.HLayout; -import com.smartgwt.client.widgets.layout.VLayout; - -import com.smartgwt.client.widgets.form.fields.FormItem; -import com.smartgwt.client.widgets.form.fields.events.BlurHandler; -import com.smartgwt.client.widgets.form.fields.events.BlurEvent; +import java.util.List; import org.dive4elements.river.client.client.FLYSConstants; import org.dive4elements.river.client.client.ui.DoubleRangePanel; - import org.dive4elements.river.client.shared.model.Data; import org.dive4elements.river.client.shared.model.DataItem; import org.dive4elements.river.client.shared.model.DataList; import org.dive4elements.river.client.shared.model.DefaultData; import org.dive4elements.river.client.shared.model.DefaultDataItem; + +import com.google.gwt.core.client.GWT; +import com.smartgwt.client.widgets.Canvas; +import com.smartgwt.client.widgets.Label; +import com.smartgwt.client.widgets.form.fields.FormItem; +import com.smartgwt.client.widgets.form.fields.events.BlurEvent; +import com.smartgwt.client.widgets.form.fields.events.BlurHandler; +import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; + /** * This UIProvider creates a panel for location or distance input. * * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ -public class FixLocationPanel -extends FixationPanel -implements BlurHandler -{ +public class FixLocationPanel extends FixationPanel implements BlurHandler { /** The message class that provides i18n strings. */ protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); - /** The constant name of the input field to enter locations.*/ + /** The constant name of the input field to enter locations. */ public static final String FIELD_VALUE_LOCATION = "location"; - /** The constant name of the input field to enter distance.*/ + /** The constant name of the input field to enter distance. */ public static final String FIELD_VALUE_DISTANCE = "distance"; DoubleRangePanel inputPanel; @@ -56,61 +50,54 @@ double step; public FixLocationPanel() { - htmlOverview = ""; + this.htmlOverview = ""; } - public Canvas createWidget(DataList data) { + @Override + public Canvas createWidget(final DataList data) { instances.put(this.artifact.getUuid(), this); - VLayout layout = new VLayout(); + final VLayout layout = new VLayout(); - Canvas title = new Label(MESSAGES.distance()); + final Canvas title = new Label(this.MESSAGES.distance()); title.setHeight("25px"); - inputPanel = new DoubleRangePanel( - MESSAGES.unitFrom(), - MESSAGES.unitTo(), - MESSAGES.unitWidth(), - 0d, - 0d, - 0d, - 240, - this); + this.inputPanel = new DoubleRangePanel(this.MESSAGES.unitFrom(), this.MESSAGES.unitTo(), this.MESSAGES.unitWidth(), 0d, 0d, 0d, 240, this); layout.addMember(title); - layout.addMember(inputPanel); + layout.addMember(this.inputPanel); return layout; } @Override - public Canvas createOld(DataList dataList) { - List<Data> items = dataList.getAll(); + public Canvas createOld(final DataList dataList) { + final List<Data> items = dataList.getAll(); - Data f = getData(items, "ld_from"); - Data t = getData(items, "ld_to"); - Data s = getData(items, "ld_step"); - DataItem[] fItems = f.getItems(); - DataItem[] tItems = t.getItems(); - DataItem[] sItems = s.getItems(); + final Data f = getData(items, "ld_from"); + final Data t = getData(items, "ld_to"); + final Data s = getData(items, "ld_step"); + final DataItem[] fItems = f.getItems(); + final DataItem[] tItems = t.getItems(); + final DataItem[] sItems = s.getItems(); - StringBuilder sb = new StringBuilder(); + final StringBuilder sb = new StringBuilder(); sb.append(fItems[0].getLabel()); - sb.append(" " + MESSAGES.unitFrom() + " "); + sb.append(" " + this.MESSAGES.unitFrom() + " "); sb.append(tItems[0].getLabel()); - sb.append(" " + MESSAGES.unitTo() + " "); + sb.append(" " + this.MESSAGES.unitTo() + " "); sb.append(sItems[0].getLabel()); - sb.append(" " + MESSAGES.unitWidth()); + sb.append(" " + this.MESSAGES.unitWidth()); - Label old = new Label(sb.toString()); + final Label old = new Label(sb.toString()); old.setWidth(130); - HLayout layout = new HLayout(); + final HLayout layout = new HLayout(); layout.setWidth("400px"); - Label label = new Label(dataList.getLabel()); + final Label label = new Label(dataList.getLabel()); label.setWidth("200px"); - Canvas back = getBackButton(dataList.getState()); + final Canvas back = getBackButton(dataList.getState()); layout.addMember(label); layout.addMember(old); @@ -119,40 +106,36 @@ return layout; } - /** * This method returns the selected data. * * @return the selected/inserted data. */ + @Override public Data[] getData() { - List<Data> data = new ArrayList<Data>(); + final List<Data> data = new ArrayList<Data>(); - boolean valid = saveRangeValues(inputPanel); + final boolean valid = saveRangeValues(this.inputPanel); if (valid) { - String f = Double.valueOf(this.from).toString(); - String t = Double.valueOf(this.to).toString(); - String s = Double.valueOf(this.step).toString(); - DataItem fi = new DefaultDataItem("ld_from", "ld_from", f); - DataItem ti = new DefaultDataItem("ld_to", "ld_to", t); - DataItem si = new DefaultDataItem("ld_step", "ld_step", s); - data.add(new DefaultData( - "ld_from", null, null, new DataItem[]{ fi })); - data.add(new DefaultData( - "ld_to", null, null, new DataItem[]{ ti })); - data.add(new DefaultData( - "ld_step", null, null, new DataItem[]{ si })); + final String f = Double.valueOf(this.from).toString(); + final String t = Double.valueOf(this.to).toString(); + final String s = Double.valueOf(this.step).toString(); + final DataItem fi = new DefaultDataItem("ld_from", "ld_from", f); + final DataItem ti = new DefaultDataItem("ld_to", "ld_to", t); + final DataItem si = new DefaultDataItem("ld_step", "ld_step", s); + data.add(new DefaultData("ld_from", null, null, new DataItem[] { fi })); + data.add(new DefaultData("ld_to", null, null, new DataItem[] { ti })); + data.add(new DefaultData("ld_step", null, null, new DataItem[] { si })); } // what else? return data.toArray(new Data[data.size()]); } + protected boolean saveRangeValues(final DoubleRangePanel p) { + final FormItem[] items = p.getFields(); + final boolean valid = p.validateForm(); - protected boolean saveRangeValues(DoubleRangePanel p) { - FormItem[] items = p.getFields(); - boolean valid = p.validateForm(); - - if(valid) { + if (valid) { this.from = p.getFrom(); this.to = p.getTo(); this.step = p.getStep(); @@ -160,45 +143,45 @@ return valid; } - @Override - public void setValues(String cid, boolean checked) { + public void setValues(final String cid, final boolean checked) { // No user interaction, do nothing. } - @Override public boolean renderCheckboxes() { // No selection, return false. return false; } - + @Override public void success() { - inputPanel.setValues(fixInfo.getFrom(), fixInfo.getTo(), 100d); + this.inputPanel.setValues(this.fixInfo.getLowerKm(), // TODO: check if revert makes sense + this.fixInfo.getUpperKm(), 100d); } /** * This method is used to validate the inserted data in the form fields. * - * @param event The BlurEvent that gives information about the FormItem that - * has been modified and its value. + * @param event + * The BlurEvent that gives information about the FormItem that + * has been modified and its value. */ - public void onBlur(BlurEvent event) { - FormItem item = event.getItem(); - String field = item.getFieldName(); + @Override + public void onBlur(final BlurEvent event) { + final FormItem item = event.getItem(); + final String field = item.getFieldName(); if (field == null) { return; } - DoubleRangePanel p = (DoubleRangePanel) event.getForm(); + final DoubleRangePanel p = (DoubleRangePanel) event.getForm(); } - - public void dumpGWT(String cid) { + public void dumpGWT(final String cid) { GWT.log("Setting values for cId: " + cid); - GWT.log("River: " + fixInfo.getRiver()); - GWT.log("Date: " + fixInfo.getEventByCId(cid).getDate()); - GWT.log("Name: " + fixInfo.getEventByCId(cid).getDescription()); + GWT.log("River: " + this.fixInfo.getRiver()); + GWT.log("Date: " + this.fixInfo.getEventByCId(cid).getDate()); + GWT.log("Name: " + this.fixInfo.getEventByCId(cid).getDescription()); } }
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixationPanel.java Mon May 28 10:56:57 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixationPanel.java Mon May 28 13:22:45 2018 +0200 @@ -161,8 +161,8 @@ final FixFilter filter = art.getFilter(); filter.setRiver(info.getRiver()); if (filter.getCurrentKm() == -Double.MAX_VALUE || filter.getCurrentKm() == -1d) { - filter.setCurrentKm(info.getFrom()); - filter.setToKm(info.getTo()); + filter.setCurrentKm(filter.getLowerKm()); + filter.setToKm(filter.getUpperKm()); } if (FixationPanel.this.kmText != null) { final NumberFormat nf = NumberFormat.getDecimalFormat(); @@ -175,7 +175,7 @@ } } eventPane.setContents(FixationPanel.this.htmlOverview); - updateChartTab(FixationPanel.this.fixInfo.getFrom()); + updateChartTab(FixationPanel.this.fixInfo.getLowerKm()); FixationPanel.this.events.setPane(eventPane); success(); } @@ -261,19 +261,20 @@ final AbstractFixBunduArtifact art = (AbstractFixBunduArtifact) this.artifact; + // was soll das all if (this.fixInfo != null) { - if (km < this.fixInfo.getFrom()) - km = this.fixInfo.getFrom(); - if (km > this.fixInfo.getTo()) - km = this.fixInfo.getTo(); + if (km < this.fixInfo.getLowerKm()) + km = this.fixInfo.getLowerKm(); + // if (km > this.fixInfo.getTo()) + // km = this.fixInfo.getTo(); } final FixFilter filter = art.getFilter(); - if (km < filter.getFromKm()) - km = filter.getFromKm(); - if (km > filter.getToKm()) - km = filter.getToKm(); + if (km < filter.getLowerKm()) + km = filter.getLowerKm(); + if (km > filter.getUpperKm()) + km = filter.getUpperKm(); filter.setCurrentKm(km); @@ -307,7 +308,7 @@ final FixFilter filter = art.getFilter(); final double curr = filter.getCurrentKm(); - if (curr > filter.getFromKm()) { + if (curr > filter.getLowerKm()) { final double newVal = (curr - 0.1) * 10; final long round = Math.round(newVal); updateChartTab(((double) round) / 10); @@ -321,7 +322,7 @@ final FixFilter filter = art.getFilter(); final double curr = filter.getCurrentKm(); - if (curr < filter.getToKm()) { + if (curr < filter.getUpperKm()) { final double newVal = (curr + 0.1) * 10; final long round = Math.round(newVal); updateChartTab(((double) round) / 10); @@ -383,8 +384,8 @@ public String getChartFilter(final FixFilter filter, final int width, final int height) { final String river = filter.getRiver(); final double currentKm = filter.getCurrentKm(); - final double fromKm = filter.getFromKm(); - final double toKm = filter.getToKm(); + final double fromKm = filter.getLowerKm(); + final double toKm = filter.getUpperKm(); if (river != null && river.length() > 0 && currentKm >= fromKm && currentKm <= toKm) { final JSONObject jfix = new JSONObject(); @@ -411,8 +412,8 @@ } protected static JSONObject createFilter(final FixFilter filter, final JSONObject root) { - final double fromKm = filter.getFromKm(); - final double toKm = filter.getToKm(); + final double fromKm = filter.getLowerKm(); + final double toKm = filter.getUpperKm(); final boolean hasDate = filter.hasDate(); if (fromKm >= 0 && toKm >= 0 && fromKm <= toKm) {
--- a/gwt-client/src/main/java/org/dive4elements/river/client/shared/model/FixFilter.java Mon May 28 10:56:57 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/shared/model/FixFilter.java Mon May 28 13:22:45 2018 +0200 @@ -11,7 +11,7 @@ import java.io.Serializable; /** Probably something like *Access, but from client side. */ -public class FixFilter implements Serializable{ +public class FixFilter implements Serializable { protected String river; protected double fromKm; @@ -37,41 +37,41 @@ this.events = new int[0]; } - public void setRiver(String river) { + public void setRiver(final String river) { this.river = river; } - public void setFromKm(double from) { + public void setFromKm(final double from) { this.fromKm = from; } - public void setToKm(double to) { + public void setToKm(final double to) { this.toKm = to; } - public void setCurrentKm(double km) { + public void setCurrentKm(final double km) { this.currentKm = km; } - public void setFromClass(int from) { + public void setFromClass(final int from) { this.fromClass = from; } - public void setToClass(int to) { + public void setToClass(final int to) { this.toClass = to; } - public void setFromDate(long from) { + public void setFromDate(final long from) { this.hasDate = true; this.fromDate = from; } - public void setToDate(long to) { + public void setToDate(final long to) { this.hasDate = true; this.toDate = to; } - public void setEvents(int[] ev) { + public void setEvents(final int[] ev) { this.events = ev; } @@ -79,14 +79,22 @@ return this.river; } - public double getFromKm() { - return this.fromKm; + public double getLowerKm() { + return Math.min(this.fromKm, this.toKm); } - public double getToKm() { - return this.toKm; + public double getUpperKm() { + return Math.max(this.fromKm, this.toKm); } + // public double getFromKm() { + // return this.fromKm; + // } + // + // public double getToKm() { + // return this.toKm; + // } + public double getCurrentKm() { return this.currentKm; } @@ -112,7 +120,7 @@ } public boolean hasDate() { - return fromDate != Long.MIN_VALUE && toDate != Long.MIN_VALUE; + return this.fromDate != Long.MIN_VALUE && this.toDate != Long.MIN_VALUE; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/gwt-client/src/main/java/org/dive4elements/river/client/shared/model/FixingsOverviewInfo.java Mon May 28 10:56:57 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/shared/model/FixingsOverviewInfo.java Mon May 28 13:22:45 2018 +0200 @@ -9,9 +9,8 @@ package org.dive4elements.river.client.shared.model; import java.io.Serializable; - +import java.util.ArrayList; import java.util.List; -import java.util.ArrayList; public class FixingsOverviewInfo implements Serializable { @@ -22,16 +21,10 @@ protected int rid; protected String html; - protected FixingsOverviewInfo() {} + private FixingsOverviewInfo() { + } - public FixingsOverviewInfo( - int rid, - String river, - double from, - double to, - List<FixEvent> events, - String html - ) { + public FixingsOverviewInfo(final int rid, final String river, final double from, final double to, final List<FixEvent> events, final String html) { this.rid = rid; this.river = river; this.from = from; @@ -48,20 +41,29 @@ return this.river; } - public double getFrom() { - return this.from; + public double getLowerKm() { + return Math.min(this.from, this.to); } - public double getTo() { - return this.to; + public double getUpperKm() { + return Math.max(this.from, this.to); } + // public double getFrom() { + // return this.from < this.to ? this.from : this.to; // TODO: prüfung wieder rausnehmen, hat glaube ich keinen + // sinnvollen effekt. + // } + // + // public double getTo() { + // return this.to > this.from ? this.to : this.from; + // } + public List<FixEvent> getEvents() { return this.events; } - public FixEvent getEventByCId(String cid) { - for (FixEvent event: events) { + public FixEvent getEventByCId(final String cid) { + for (final FixEvent event : this.events) { if (event.getCId().equals(cid)) { return event; } @@ -73,21 +75,16 @@ return this.html; } - public static class FixEvent implements Serializable { protected String cid; protected String date; protected String description; protected List<Sector> sectors; - protected FixEvent () {} + protected FixEvent() { + } - public FixEvent( - String cid, - String date, - String description, - List<Sector> sectors - ) { + public FixEvent(final String cid, final String date, final String description, final List<Sector> sectors) { this.cid = cid; this.date = date; this.description = description; @@ -116,13 +113,10 @@ protected double from; protected double to; - protected Sector () {} + protected Sector() { + } - public Sector( - int cls, - double from, - double to - ) { + public Sector(final int cls, final double from, final double to) { this.cls = cls; this.from = from; this.to = to;