Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixWQCurveGenerator.java @ 9360:ddcd52d239cd
Outliers in fixation calculation are now shown within the other 'B' event themes and get a separate symbol (triangle).
Removed old outliers theme.
Also consider showpoints property.
Also consider pointsize property.
author | gernotbelger |
---|---|
date | Wed, 01 Aug 2018 17:13:52 +0200 |
parents | 13bbc75ed0bc |
children | 9b8e8fc1f408 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixWQCurveGenerator.java Wed Aug 01 13:21:34 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixWQCurveGenerator.java Wed Aug 01 17:13:52 2018 +0200 @@ -30,6 +30,7 @@ import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.artifacts.CallContext; +import org.dive4elements.artifacts.CallMeta; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.StaticWKmsArtifact; import org.dive4elements.river.artifacts.WINFOArtifact; @@ -58,7 +59,7 @@ import org.dive4elements.river.themes.ThemeDocument; import org.dive4elements.river.utils.RiverUtils; import org.dive4elements.river.java2d.ShapeUtils; - +import org.dive4elements.river.java2d.ShapeUtils.ShapeType; import org.dive4elements.river.jfree.Bounds; import org.dive4elements.river.jfree.DoubleBounds; @@ -227,9 +228,6 @@ else if(FIX_WQ_CURVE.equals(name)) { doWQCurveOut(aaf, doc, visible); } - else if(FIX_OUTLIER.equals(name)) { - doOutlierOut(aaf, doc, visible); - } else if(QSECTOR.equals(name)) { doQSectorOut(aaf, doc, visible); } @@ -302,7 +300,7 @@ } /** Add analysis event points to chart. */ - protected void doAnalysisEventsOut( + private void doAnalysisEventsOut( ArtifactAndFacet aaf, ThemeDocument doc, boolean visible @@ -324,7 +322,7 @@ double w = factor*(qwd.getW()-gaugeDatum); final ThemeDocument theme = configureThemeInterpolated(doc, qwd); - final XYSeries series = createQWDSeries(aaf, theme, qwd, qwd.getQ(), qwd.getQ()); + final XYSeries series = createQWDSeries(getContext().getMeta(), aaf, theme, qwd, qwd.getQ(), qwd.getQ()); addAxisSeries(series, atGauge ? YAXIS.WCm.idx : YAXIS.W.idx, visible); @@ -347,7 +345,7 @@ /** Add reference event points to chart. */ - protected void doReferenceEventsOut( + private void doReferenceEventsOut( ArtifactAndFacet aaf, ThemeDocument doc, boolean visible @@ -368,7 +366,7 @@ double w = factor*(qwd.getW()-gaugeDatum); final ThemeDocument theme = configureThemeInterpolated(doc, qwd); - final XYSeries series = createQWDSeries(aaf, theme, qwd, qwd.getQ(), w); + final XYSeries series = createQWDSeries(getContext().getMeta(), aaf, theme, qwd, qwd.getQ(), w); series.add(qwd.getQ(), w, false); if (visible && theme.parseShowPointLabel()) { @@ -392,31 +390,34 @@ } - public static XYSeries createQWDSeries(final ArtifactAndFacet bundle, final ThemeDocument theme, final QWI qwd) { - return createQWDSeries(bundle, theme, qwd, qwd.getQ(), qwd.getW()); + public static XYSeries createQWDSeries(final CallMeta meta, final ArtifactAndFacet bundle, final ThemeDocument theme, final QWI qwd) { + return createQWDSeries(meta, bundle, theme, qwd, qwd.getQ(), qwd.getW()); } - public static XYSeries createQWDSeries(final ArtifactAndFacet bundle, final ThemeDocument theme, final QWI qwd, double q, double w) { + public static XYSeries createQWDSeries(final CallMeta meta, final ArtifactAndFacet bundle, final ThemeDocument theme, final QWI qwd, double q, double w) { - final String description = buildQWDSeriesLabel(qwd, bundle.getFacetDescription()); + final String description = buildQWDSeriesLabel(meta, qwd, bundle.getFacetDescription()); - final XYSeries series = new StyledXYSeries( description, theme, FixWQCurveGenerator.getWQDShape(qwd) ); + final int size = theme.parsePointWidth(); + final Shape shape = FixWQCurveGenerator.getWQDShape(qwd, size); + + final XYSeries series = new StyledXYSeries( description, theme, shape ); series.add(q, w, false); return series; } - public static Shape getWQDShape(final QWI qwd) { + public static Shape getWQDShape(final QWI qwd, final float size) { final boolean isOutlier = qwd instanceof QWD ? ((QWD) qwd).isOutlier() : false; -// if( isOutlier) -// return ShapeUtils.DIGITIZED_SHAPE; - + if( isOutlier) + return ShapeUtils.getScaledShape(ShapeType.outlier, size ); + if (qwd.getInterpolated()) - return ShapeUtils.INTERPOLATED_SHAPE; + return ShapeUtils.getScaledShape(ShapeType.interpolated, size); - return ShapeUtils.MEASURED_SHAPE; + return ShapeUtils.getScaledShape(ShapeType.measured, size); } public static final ThemeDocument configureThemeInterpolated(ThemeDocument theme, QWI qwd) { @@ -424,26 +425,20 @@ // prevent potential side effects by copying original theme final ThemeDocument newTheme = new ThemeDocument(theme); - // FIXME: it was like this before: points were always shown, flag had no effekt on this kind of theme, although the option is visible in the style editor - final boolean showPoints = true; -// final boolean showPoints = theme.parseShowPoints(); + final boolean showPoints = theme.parseShowPoints(); final boolean doFill = showPoints && !qwd.getInterpolated(); final boolean doOutline = showPoints && qwd.getInterpolated(); - final boolean isOutlier = qwd instanceof QWD ? ((QWD) qwd).isOutlier() : false; - if( isOutlier ) - newTheme.setValue(ThemeDocument.POINT_COLOR, "255, 0, 0"); - newTheme.setValue(ThemeDocument.SHOW_POINTS, Boolean.toString(doFill)); newTheme.setValue(ThemeDocument.SHOW_POINTS_OUTLINE, Boolean.toString(doOutline)); return newTheme; } - public static String buildQWDSeriesLabel(final QWI qwd, final String facetDescription) { + public static String buildQWDSeriesLabel(final CallMeta meta, final QWI qwd, final String facetDescription) { - StringBuilder buffer = new StringBuilder( facetDescription ); + final StringBuilder buffer = new StringBuilder( facetDescription ); final boolean isOutlier = qwd instanceof QWD ? ((QWD) qwd).isOutlier() : false; boolean isInterpolated = qwd.getInterpolated(); @@ -452,15 +447,15 @@ return buffer.toString(); buffer.append(" ("); - if( isInterpolated ) + if( isOutlier ) { - buffer.append("interpoliert"); - if( isOutlier ) + buffer.append( Resources.getMsg(meta, "fix.outlier") ); + if( isInterpolated ) buffer.append(", "); } - if( isOutlier ) - buffer.append("Ausreißer"); + if( isInterpolated ) + buffer.append( Resources.getMsg(meta, "fix.interpolated") ); buffer.append(")"); @@ -572,18 +567,6 @@ } } - protected void doOutlierOut( - ArtifactAndFacet aaf, - ThemeDocument doc, - boolean visible - ) { - log.debug("doOutlierOut"); - - QWI[] qws = (QWI[])aaf.getData(getContext()); - addQWSeries(qws, aaf, doc, visible); - } - - /** Add markers for q sectors. */ protected void doQSectorOut( ArtifactAndFacet aaf,