From b6e460a97adf02b1b29437e58409a0424d2d936b Mon Sep 17 00:00:00 2001 From: Matt Nash Date: Thu, 26 Jun 2014 17:30:22 -0500 Subject: [PATCH] Omaha #3303 make FFMPResource interrogatable Change-Id: I59d0603f581034adc1607d69828c3c05c4051540 Former-commit-id: baf64e4a4162a49517865be0e5cf6297837e92cd [formerly 8f71be817f805aaf29d91612d0fcebe458d6493f] [formerly 2be9c8972259ed947f5a61bb737b162d8aee5b9c] [formerly baf64e4a4162a49517865be0e5cf6297837e92cd [formerly 8f71be817f805aaf29d91612d0fcebe458d6493f] [formerly 2be9c8972259ed947f5a61bb737b162d8aee5b9c] [formerly 58a943425456cd06c816896b12c3982883a7c728 [formerly 2be9c8972259ed947f5a61bb737b162d8aee5b9c [formerly 848a7c7428a42fe164312363c4eb3e4080d90d66]]]] Former-commit-id: 58a943425456cd06c816896b12c3982883a7c728 Former-commit-id: afdac2bafd2608f5b824a7fafadc7bb350a93bd6 [formerly d4b6c9803e737cbb7e38fba4fff1adea54675d5d] [formerly a3d17e4f46d08b2176b5ac7766da43408244c04f [formerly a82e71702a355da4fac872e89c2d8b81efa58061]] Former-commit-id: bf26c0317b05796c264b1626da690d41db48f07c [formerly 0bfa8347a49b3a4559d20681db478e561337f17d] Former-commit-id: adc1a6df6d01b0b5e20b81550423d9719adcf220 --- .../.classpath | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 7 -- .../META-INF/MANIFEST.MF | 5 +- .../viz/monitor/ffmp/ui/rsc/FFMPResource.java | 80 +++++++++++++++++-- 4 files changed, 77 insertions(+), 17 deletions(-) delete mode 100644 cave/com.raytheon.uf.viz.monitor.ffmp/.settings/org.eclipse.jdt.core.prefs diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/.classpath b/cave/com.raytheon.uf.viz.monitor.ffmp/.classpath index 1fa3e6803d..098194ca4b 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/.classpath +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/.classpath @@ -1,6 +1,6 @@ - + diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/.settings/org.eclipse.jdt.core.prefs b/cave/com.raytheon.uf.viz.monitor.ffmp/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 19b4dc5b6d..0000000000 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,7 +0,0 @@ -#Fri Jan 30 10:34:44 CST 2009 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF b/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF index dcbff667ab..b78575dc95 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF @@ -28,8 +28,9 @@ Require-Bundle: org.eclipse.ui, com.raytheon.uf.common.dataaccess;bundle-version="1.0.0", com.raytheon.uf.common.colormap;bundle-version="1.12.1174", com.raytheon.uf.common.style;bundle-version="1.0.0", - com.raytheon.uf.common.plugin.hpe;bundle-version="1.0.0" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 + com.raytheon.uf.common.plugin.hpe;bundle-version="1.0.0", + com.raytheon.uf.viz.core.rsc;bundle-version="1.14.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Import-Package: com.raytheon.uf.common.pointdata Export-Package: com.raytheon.uf.viz.monitor.ffmp, diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPResource.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPResource.java index b9c32ef2cc..692dfe9803 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPResource.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPResource.java @@ -36,6 +36,8 @@ import java.util.TreeSet; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ConcurrentHashMap; +import javax.measure.Measure; + import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -52,6 +54,7 @@ import org.opengis.referencing.FactoryException; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.operation.TransformException; +import com.raytheon.uf.common.colormap.prefs.ColorMapParameters; import com.raytheon.uf.common.dataplugin.PluginDataObject; import com.raytheon.uf.common.dataplugin.ffmp.FFMPBasin; import com.raytheon.uf.common.dataplugin.ffmp.FFMPBasinMetaData; @@ -120,6 +123,11 @@ import com.raytheon.uf.viz.core.rsc.capabilities.EditableCapability; import com.raytheon.uf.viz.core.rsc.capabilities.ImagingCapability; import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability; import com.raytheon.uf.viz.core.rsc.capabilities.OutlineCapability; +import com.raytheon.uf.viz.core.rsc.interrogation.ClassInterrogationKey; +import com.raytheon.uf.viz.core.rsc.interrogation.Interrogatable; +import com.raytheon.uf.viz.core.rsc.interrogation.InterrogateMap; +import com.raytheon.uf.viz.core.rsc.interrogation.InterrogationKey; +import com.raytheon.uf.viz.core.rsc.interrogation.Interrogator; import com.raytheon.uf.viz.monitor.ffmp.FFMPMonitor; import com.raytheon.uf.viz.monitor.ffmp.ui.dialogs.FFMPConfig; import com.raytheon.uf.viz.monitor.ffmp.ui.dialogs.FfmpBasinTableDlg; @@ -184,6 +192,7 @@ import com.vividsolutions.jts.geom.Point; * Apr 30, 2014 DR 16148 gzhang Filter Basin Dates for Trend and Table Gap. * May 05, 2014 3026 mpduff Display Hpe bias source. * May 19, 2014 DR 16096 gzhang Make getBasin() protected for FFMPDataGenerator. + * 06/24/2016 mnash Make FFMPResource implement Interrogatable * * * @author dhladky @@ -192,7 +201,8 @@ import com.vividsolutions.jts.geom.Point; public class FFMPResource extends AbstractVizResource implements - IResourceDataChanged, IFFMPResourceListener, FFMPListener { + IResourceDataChanged, IFFMPResourceListener, FFMPListener, + Interrogatable { /** Status handler */ private final IUFStatusHandler statusHandler = UFStatus @@ -3152,7 +3162,7 @@ public class FFMPResource extends boolean guid = false; Date oldestRefTime = getOldestTime(); Date mostRecentRefTime = getPaintTime().getRefTime(); - + Date barrierTime = getTableTime();// DR 16148 Date minUriTime = getTimeOrderedKeys().get(0);// DR 16148 @@ -3167,10 +3177,11 @@ public class FFMPResource extends if (rateBasin != null) { for (Date date : rateBasin.getValues().keySet()) { - - if (date.before(minUriTime) || date.before(barrierTime) || date.after(mostRecentRefTime)) + + if (date.before(minUriTime) || date.before(barrierTime) + || date.after(mostRecentRefTime)) continue;// DR 16148 - + double dtime = FFMPGuiUtils.getTimeDiff(mostRecentRefTime, date); fgd.setRate(dtime, (double) rateBasin.getValue(date)); @@ -3195,8 +3206,9 @@ public class FFMPResource extends if (qpeBasin != null) { for (Date date : qpeBasin.getValues().keySet()) { - - if (date.before(minUriTime) || date.before(barrierTime) || date.after(mostRecentRefTime)) + + if (date.before(minUriTime) || date.before(barrierTime) + || date.after(mostRecentRefTime)) continue;// DR 16148 double dtime = FFMPGuiUtils.getTimeDiff(mostRecentRefTime, @@ -4188,4 +4200,58 @@ public class FFMPResource extends return Status.OK_STATUS; } } + + /* + * (non-Javadoc) + * + * @see com.raytheon.uf.viz.core.rsc.interrogation.Interrogatable# + * getInterrogationKeys() + */ + @Override + public Set> getInterrogationKeys() { + Set> set = new HashSet>(); + set.add(Interrogator.GEOMETRY); + set.add(Interrogator.VALUE); + set.add(new ClassInterrogationKey(Double.class)); + return set; + } + + /* + * (non-Javadoc) + * + * @see + * com.raytheon.uf.viz.core.rsc.interrogation.Interrogatable#interrogate + * (com.raytheon.uf.common.geospatial.ReferencedCoordinate, + * com.raytheon.uf.common.time.DataTime, + * com.raytheon.uf.viz.core.rsc.interrogation.InterrogationKey[]) + */ + @Override + public InterrogateMap interrogate(ReferencedCoordinate coordinate, + DataTime time, InterrogationKey... keys) { + InterrogateMap map = new InterrogateMap(); + try { + FFMPBasinMetaData metaBasin = monitor.getTemplates(getSiteKey()) + .findBasinByLatLon(getSiteKey(), coordinate.asLatLon()); + if (metaBasin != null) { + Float value = getBasinValue(metaBasin.getPfaf(), getPaintTime() + .getRefTime(), true); + if (value != null) { + ColorMapParameters parameters = getCapability( + ColorMapCapability.class).getColorMapParameters(); + map.put(Interrogator.VALUE, + Measure.valueOf(value, parameters.getDisplayUnit())); + } + Geometry geom = monitor.getTemplates(getSiteKey()) + .getRawGeometries(getSiteKey(), metaBasin.getCwa()) + .get(metaBasin.getPfaf()); + if (geom != null) { + map.put(Interrogator.GEOMETRY, geom); + } + } + } catch (TransformException | FactoryException e) { + statusHandler.handle(Priority.PROBLEM, + "Unable to transform coordinate to lat/lon value", e); + } + return map; + } }