diff --git a/cave/com.raytheon.uf.viz.acarssounding/META-INF/MANIFEST.MF b/cave/com.raytheon.uf.viz.acarssounding/META-INF/MANIFEST.MF
index c2cebf8d9b..5d2f001e5d 100644
--- a/cave/com.raytheon.uf.viz.acarssounding/META-INF/MANIFEST.MF
+++ b/cave/com.raytheon.uf.viz.acarssounding/META-INF/MANIFEST.MF
@@ -2,8 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Acarssounding Plug-in
Bundle-SymbolicName: com.raytheon.uf.viz.acarssounding;singleton:=true
-Bundle-Version: 1.14.0.qualifier
-Bundle-Activator: com.raytheon.uf.viz.acarssounding.Activator
+Bundle-Version: 1.15.0.qualifier
Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
@@ -23,9 +22,10 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
com.raytheon.uf.viz.d2d.nsharp;bundle-version="1.0.0",
org.geotools;bundle-version="2.6.4",
javax.measure;bundle-version="1.0.0",
- com.raytheon.viz.volumebrowser;bundle-version="1.12.1174",
+ com.raytheon.viz.volumebrowser;bundle-version="1.15.0",
com.raytheon.uf.common.comm;bundle-version="1.12.1174",
- com.raytheon.uf.common.derivparam;bundle-version="1.14.0"
+ com.raytheon.uf.common.derivparam;bundle-version="1.14.0",
+ com.raytheon.uf.viz.volumebrowser.dataplugin;bundle-version="1.15.0"
Import-Package: com.raytheon.uf.common.inventory.exception,
com.raytheon.uf.viz.datacube
Bundle-ClassPath: com.raytheon.uf.viz.acarssounding.jar
diff --git a/cave/com.raytheon.uf.viz.acarssounding/build.properties b/cave/com.raytheon.uf.viz.acarssounding/build.properties
index 16bd221c83..4c470c01e4 100644
--- a/cave/com.raytheon.uf.viz.acarssounding/build.properties
+++ b/cave/com.raytheon.uf.viz.acarssounding/build.properties
@@ -1,5 +1,6 @@
output.com.raytheon.uf.viz.acarssounding.jar = bin/
bin.includes = META-INF/,\
res/,\
- com.raytheon.uf.viz.acarssounding.jar
+ com.raytheon.uf.viz.acarssounding.jar,\
+ plugin.xml
source.com.raytheon.uf.viz.acarssounding.jar = src/
diff --git a/cave/com.raytheon.uf.viz.acarssounding/plugin.xml b/cave/com.raytheon.uf.viz.acarssounding/plugin.xml
new file mode 100644
index 0000000000..5bbfd16786
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.acarssounding/plugin.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/AcarsSoundingProductCreator.java b/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/AcarsSoundingProductCreator.java
new file mode 100644
index 0000000000..d35f151c85
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/AcarsSoundingProductCreator.java
@@ -0,0 +1,53 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.acarssounding;
+
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.d2d.nsharp.rsc.D2DNSharpResourceData;
+import com.raytheon.uf.viz.d2d.nsharp.vb.NSharpProductCreator;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+
+/**
+ *
+ * Creates {@link AcarsSndNSharpResourceData} for loading acars sounding data in
+ * nsharp.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class AcarsSoundingProductCreator extends NSharpProductCreator {
+
+ @Override
+ protected D2DNSharpResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return new AcarsSndNSharpResourceData();
+ }
+}
diff --git a/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/AcarsSoundingVbDataCatalog.java b/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/AcarsSoundingVbDataCatalog.java
index fe42b77b41..d42e9451c3 100644
--- a/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/AcarsSoundingVbDataCatalog.java
+++ b/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/AcarsSoundingVbDataCatalog.java
@@ -19,10 +19,7 @@
**/
package com.raytheon.uf.viz.acarssounding;
-import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
-import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
-import com.raytheon.viz.volumebrowser.datacatalog.PointDataCatalog;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.point.PointDataCatalog;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
/**
@@ -32,11 +29,12 @@ import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
*
* SOFTWARE HISTORY
*
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Aug 19, 2013 2269 bsteffen Initial javadoc
- * Aug 19, 2013 2269 bsteffen Fix MDCRS data and switch acars to use
- * nsharp.
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 19, 2013 2269 bsteffen Initial javadoc
+ * Aug 19, 2013 2269 bsteffen Fix MDCRS data and switch acars to use
+ * nsharp.
+ * Aug 03, 2015 3861 bsteffen Move resource creation to product creator
*
*
*
@@ -50,15 +48,4 @@ public class AcarsSoundingVbDataCatalog extends PointDataCatalog {
return new String[] { "acarssounding" };
}
- @Override
- protected AbstractRequestableResourceData getResourceData(
- IDataCatalogEntry catalogEntry, ResourceType resourceType) {
- if (resourceType == ResourceType.SOUNDING
- && catalogEntry.getSelectedData().getSourcesKey()
- .equals("acarssounding")) {
- return new AcarsSndNSharpResourceData();
- }
- return super.getResourceData(catalogEntry, resourceType);
- }
-
}
diff --git a/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/Activator.java b/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/Activator.java
deleted file mode 100644
index e6d74e959f..0000000000
--- a/cave/com.raytheon.uf.viz.acarssounding/src/com/raytheon/uf/viz/acarssounding/Activator.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * This software was developed and / or modified by Raytheon Company,
- * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
- *
- * U.S. EXPORT CONTROLLED TECHNICAL DATA
- * This software product contains export-restricted data whose
- * export/transfer/disclosure is restricted by U.S. law. Dissemination
- * to non-U.S. persons whether in the United States or abroad requires
- * an export license or other authorization.
- *
- * Contractor Name: Raytheon Company
- * Contractor Address: 6825 Pine Street, Suite 340
- * Mail Stop B8
- * Omaha, NE 68106
- * 402.291.0100
- *
- * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
- * further licensing information.
- **/
-package com.raytheon.uf.viz.acarssounding;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogManager;
-
-/**
- * The activator class controls the plug-in life cycle
- *
- *
- *
- * SOFTWARE HISTORY
- *
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Aug 19, 2013 2269 bsteffen Initial javadoc
- * Aug 19, 2013 2269 bsteffen Fix MDCRS data and switch acars to use
- * nsharp.
- *
- *
- *
- * @author unknown
- * @version 1.0
- */
-public class Activator extends Plugin {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "com.raytheon.uf.viz.acarssounding";
-
- // The shared instance
- private static Activator plugin;
-
- /**
- * The constructor
- */
- public Activator() {
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- DataCatalogManager.getDataCatalogManager().addDataCatalog(
- new AcarsSoundingVbDataCatalog());
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static Activator getDefault() {
- return plugin;
- }
-
-}
diff --git a/cave/com.raytheon.uf.viz.d2d.gfe/META-INF/MANIFEST.MF b/cave/com.raytheon.uf.viz.d2d.gfe/META-INF/MANIFEST.MF
index 0ad69a7458..8b76352e51 100644
--- a/cave/com.raytheon.uf.viz.d2d.gfe/META-INF/MANIFEST.MF
+++ b/cave/com.raytheon.uf.viz.d2d.gfe/META-INF/MANIFEST.MF
@@ -3,7 +3,6 @@ Bundle-ManifestVersion: 2
Bundle-Name: GFE in D2D
Bundle-SymbolicName: com.raytheon.uf.viz.d2d.gfe;singleton:=true
Bundle-Version: 1.15.0.qualifier
-Bundle-Activator: com.raytheon.uf.viz.d2d.gfe.Activator
Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
@@ -19,11 +18,10 @@ Require-Bundle: org.eclipse.swt;bundle-version="3.8.1",
com.raytheon.uf.viz.xy.timeseries;bundle-version="1.13.0",
com.raytheon.uf.common.style,
com.raytheon.uf.viz.productbrowser,
- com.raytheon.viz.volumebrowser;bundle-version="1.13.0",
- javax.measure
-Export-Package: com.raytheon.uf.viz.d2d.gfe,
- com.raytheon.uf.viz.d2d.gfe.browser,
+ com.raytheon.viz.volumebrowser;bundle-version="1.15.0",
+ javax.measure,
+ com.raytheon.uf.viz.core.maps;bundle-version="1.14.1"
+Export-Package: com.raytheon.uf.viz.d2d.gfe.browser,
com.raytheon.uf.viz.d2d.gfe.rsc,
com.raytheon.uf.viz.d2d.gfe.xy
-Import-Package: org.osgi.framework;version="1.7.0"
Bundle-ClassPath: com.raytheon.uf.viz.d2d.gfe.jar
diff --git a/cave/com.raytheon.uf.viz.d2d.gfe/plugin.xml b/cave/com.raytheon.uf.viz.d2d.gfe/plugin.xml
index 2ed735a3d4..8c55b69ba2 100644
--- a/cave/com.raytheon.uf.viz.d2d.gfe/plugin.xml
+++ b/cave/com.raytheon.uf.viz.d2d.gfe/plugin.xml
@@ -24,4 +24,23 @@
name="GFE Time Series Adapter">
+
+
+
+
+
+
+
+
+
+
diff --git a/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/Activator.java b/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/Activator.java
deleted file mode 100644
index ae7d2a56fe..0000000000
--- a/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/Activator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.raytheon.uf.viz.d2d.gfe;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-import com.raytheon.uf.viz.d2d.gfe.browser.GFEVbDataCatalog;
-import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogManager;
-
-public class Activator implements BundleActivator {
-
- private static BundleContext context;
-
- static BundleContext getContext() {
- return context;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
- * )
- */
- public void start(BundleContext bundleContext) throws Exception {
- Activator.context = bundleContext;
- DataCatalogManager.getDataCatalogManager().addDataCatalog(
- new GFEVbDataCatalog());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext bundleContext) throws Exception {
- Activator.context = null;
- }
-
-}
diff --git a/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/browser/GFEVbDataCatalog.java b/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/browser/GFEVbDataCatalog.java
index d2f19bd619..32112c59aa 100644
--- a/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/browser/GFEVbDataCatalog.java
+++ b/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/browser/GFEVbDataCatalog.java
@@ -20,7 +20,6 @@
package com.raytheon.uf.viz.d2d.gfe.browser;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -41,15 +40,10 @@ import com.raytheon.uf.common.style.StyleException;
import com.raytheon.uf.common.style.StyleManager;
import com.raytheon.uf.common.style.StyleManager.StyleType;
import com.raytheon.uf.common.style.StyleRule;
-import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
-import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
-import com.raytheon.uf.viz.core.rsc.AbstractResourceData;
import com.raytheon.uf.viz.core.rsc.DisplayType;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
import com.raytheon.uf.viz.d2d.gfe.rsc.GFEGridResource;
-import com.raytheon.uf.viz.d2d.gfe.rsc.GFEGridResourceData;
import com.raytheon.viz.volumebrowser.datacatalog.AbstractDataCatalog;
import com.raytheon.viz.volumebrowser.datacatalog.AvailableDataRequest;
import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogEntry;
@@ -67,12 +61,13 @@ import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
*
* SOFTWARE HISTORY
*
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Mar 9, 2011 bsteffen Initial creation
- * May 02, 2013 1949 bsteffen Update GFE data access in Product
- * Browser, Volume Browser, and Data Access
- * Framework.
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Mar 09, 2011 bsteffen Initial creation
+ * May 02, 2013 1949 bsteffen Update GFE data access in Product Browser,
+ * Volume Browser, and Data Access Framework
+ * Aug 03, 2015 3861 bsteffen Move resource creation to product creator
+ *
*
*
*
@@ -250,31 +245,6 @@ public class GFEVbDataCatalog extends AbstractDataCatalog {
.getSelectedData()));
}
- @Override
- public Collection getResourcesToLoad(
- IDataCatalogEntry catalogEntry, ResourceType resourceType,
- DisplayType displayType) {
- Collection rsc = super.getResourcesToLoad(catalogEntry,
- resourceType, displayType);
- for (ResourcePair pair : rsc) {
- AbstractResourceData rd = pair.getResourceData();
- if (rd instanceof GFEGridResourceData) {
- ((GFEGridResourceData) rd).setLegendString(getName(
- catalogEntry, displayType));
- }
- }
- return rsc;
- }
-
- @Override
- protected AbstractRequestableResourceData getResourceData(
- IDataCatalogEntry catalogEntry, ResourceType resourceType) {
- if (resourceType == ResourceType.PLAN_VIEW) {
- return new GFEGridResourceData();
- }
- return super.getResourceData(catalogEntry, resourceType);
- }
-
@Override
protected String getDisplayUnit(IDataCatalogEntry catalogEntry,
DisplayType displayType) {
diff --git a/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/browser/GfeMapProductCreator.java b/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/browser/GfeMapProductCreator.java
new file mode 100644
index 0000000000..b308e61f91
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.d2d.gfe/src/com/raytheon/uf/viz/d2d/gfe/browser/GfeMapProductCreator.java
@@ -0,0 +1,55 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.d2d.gfe.browser;
+
+import com.raytheon.uf.viz.core.maps.display.MapRenderableDisplay;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.d2d.gfe.rsc.GFEGridResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.AbstractMapProductCreator;
+
+/**
+ *
+ * Creates {@link GFEGridResourceData} for use on a {@link MapRenderableDisplay}
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class GfeMapProductCreator extends AbstractMapProductCreator {
+
+ @Override
+ protected GFEGridResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ GFEGridResourceData data = new GFEGridResourceData();
+ data.setLegendString(dataCatalog.getName(catalogEntry, displayType));
+ return data;
+ }
+
+}
diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/META-INF/MANIFEST.MF b/cave/com.raytheon.uf.viz.d2d.nsharp/META-INF/MANIFEST.MF
index 76f2e0714c..2040d4c24e 100644
--- a/cave/com.raytheon.uf.viz.d2d.nsharp/META-INF/MANIFEST.MF
+++ b/cave/com.raytheon.uf.viz.d2d.nsharp/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: D2D Nsharp
Bundle-SymbolicName: com.raytheon.uf.viz.d2d.nsharp;singleton:=true
-Bundle-Version: 1.14.1.qualifier
+Bundle-Version: 1.15.0.qualifier
Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
@@ -22,8 +22,10 @@ Require-Bundle: com.raytheon.uf.viz.core;bundle-version="1.14.0",
com.raytheon.uf.common.topo,
com.raytheon.viz.pointdata,
com.raytheon.uf.viz.image.export;bundle-version="1.14.0",
- org.eclipse.core.runtime;bundle-version="3.8.0"
+ org.eclipse.core.runtime;bundle-version="3.8.0",
+ com.raytheon.viz.volumebrowser;bundle-version="1.15.0"
Export-Package: com.raytheon.uf.viz.d2d.nsharp,
com.raytheon.uf.viz.d2d.nsharp.display,
- com.raytheon.uf.viz.d2d.nsharp.rsc
+ com.raytheon.uf.viz.d2d.nsharp.rsc,
+ com.raytheon.uf.viz.d2d.nsharp.vb
Bundle-ClassPath: com.raytheon.uf.viz.d2d.nsharp.jar
diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/plugin.xml b/cave/com.raytheon.uf.viz.d2d.nsharp/plugin.xml
index 13600f1938..91b7e5973c 100644
--- a/cave/com.raytheon.uf.viz.d2d.nsharp/plugin.xml
+++ b/cave/com.raytheon.uf.viz.d2d.nsharp/plugin.xml
@@ -79,5 +79,13 @@
+
+
+
+
diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/GribNSharpResourceData.java b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/GribNSharpResourceData.java
index b3cfa7d68c..f7c09f967c 100644
--- a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/GribNSharpResourceData.java
+++ b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/GribNSharpResourceData.java
@@ -32,6 +32,7 @@ import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.topo.TopoException;
@@ -40,19 +41,23 @@ import com.raytheon.uf.viz.core.exception.VizException;
/**
*
- * TODO Add Description
+ * {@link D2DNSharpResourceData} for loading gridded data into nsharp.
+ *
+ * TODO rename to GridNSharpResourceData, grib only remains for backward
+ * compatibility in xml.
*
*
*
* SOFTWARE HISTORY
*
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Jul 26, 2011 bsteffen Initial creation
- * Feb 15, 2013 1638 mschenke Got rid of viz/edex topo classes
- * and moved into common
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Jul 26, 2011 bsteffen Initial creation
+ * Feb 15, 2013 1638 mschenke Got rid of viz/edex topo classes and moved
+ * into common
* 04/27/2015 RM#6674&7787 Chin Chen support model sounding query data interpolation and nearest point option
- *
+ * Aug 03, 2015 3861 bsteffen Automatically determine sounding type from
+ * request constraints.
*
*
*
@@ -77,8 +82,11 @@ public class GribNSharpResourceData extends D2DNSharpResourceData {
@Override
protected void preparePointInfo() throws VizException {
- // everything should already be set
- return;
+ /* Always keep the type in sync with what is in the metadata map. */
+ RequestConstraint typeConstraint = metadataMap.get("info.datasetId");
+ if (typeConstraint != null) {
+ this.setSoundingType(typeConstraint.getConstraintValue());
+ }
}
@Override
diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/vb/NSharpProductCreator.java b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/vb/NSharpProductCreator.java
new file mode 100644
index 0000000000..a36ee84d20
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/vb/NSharpProductCreator.java
@@ -0,0 +1,92 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.d2d.nsharp.vb;
+
+import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDescriptor;
+import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDisplay;
+
+import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.d2d.nsharp.rsc.BufruaNSharpResourceData;
+import com.raytheon.uf.viz.d2d.nsharp.rsc.D2DNSharpResourceData;
+import com.raytheon.uf.viz.d2d.nsharp.rsc.GoesSndNSharpResourceData;
+import com.raytheon.uf.viz.d2d.nsharp.rsc.GribNSharpResourceData;
+import com.raytheon.uf.viz.d2d.nsharp.rsc.MdlSndNSharpResourceData;
+import com.raytheon.uf.viz.d2d.nsharp.rsc.PoesSndNSharpResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.AbstractProductCreator;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+
+/**
+ *
+ * Create various {@link D2DNSharpResourceData}s for using nsharp with the
+ * volume browser.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class NSharpProductCreator extends AbstractProductCreator {
+
+
+ @Override
+ protected D2DNSharpResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ String sourceKey = catalogEntry.getSelectedData().getSourcesKey();
+ if (sourceKey.equals("bufrua")) {
+ return new BufruaNSharpResourceData();
+ } else if (sourceKey.equals("modelsoundingETA")) {
+ return new MdlSndNSharpResourceData("NAMSND");
+ } else if (sourceKey.equals("modelsoundingGFS")) {
+ return new MdlSndNSharpResourceData("GFSSND");
+ } else if (sourceKey.equals("poessounding")) {
+ return new PoesSndNSharpResourceData();
+ } else if (sourceKey.equals("goessounding")) {
+ return new GoesSndNSharpResourceData();
+ } else {
+ D2DNSharpResourceData tmpData = new GribNSharpResourceData(
+ catalogEntry.getSelectedData().getSourcesKey());
+ tmpData.setCoordinate(PointLineUtil
+ .getPointCoordinate(catalogEntry));
+ String pointName = catalogEntry.getSelectedData().getPlanesKey();
+ tmpData.setPointName(pointName);
+ return tmpData;
+ }
+ }
+
+ @Override
+ protected AbstractRenderableDisplay createNewRenderableDisplay(VolumeBrowserDialogSettings dialogSettings, SelectedData selectedData) {
+ NsharpSkewTPaneDisplay display = new NsharpSkewTPaneDisplay();
+ display.setDescriptor(new NsharpSkewTPaneDescriptor());
+ return display;
+ }
+
+}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/.classpath b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/.classpath
new file mode 100644
index 0000000000..098194ca4b
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/.project b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/.project
new file mode 100644
index 0000000000..047e744287
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/.project
@@ -0,0 +1,28 @@
+
+
+ com.raytheon.uf.viz.volumebrowser.dataplugin
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+
+ org.eclipse.pde.PluginNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/META-INF/MANIFEST.MF b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..60ffa91338
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/META-INF/MANIFEST.MF
@@ -0,0 +1,30 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Volume Browser Data Plugins
+Bundle-SymbolicName: com.raytheon.uf.viz.volumebrowser.dataplugin;singleton:=true
+Bundle-Version: 1.15.0.qualifier
+Bundle-Vendor: RAYTHEON
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Require-Bundle: com.raytheon.uf.viz.core;bundle-version="1.15.1",
+ com.raytheon.viz.volumebrowser;bundle-version="1.15.0",
+ org.eclipse.core.runtime;bundle-version="3.8.0",
+ com.raytheon.uf.common.time;bundle-version="1.14.0",
+ com.raytheon.uf.viz.xy.varheight;bundle-version="1.15.0",
+ com.raytheon.uf.viz.xy.timeseries;bundle-version="1.14.0",
+ com.raytheon.uf.viz.xy.timeheight;bundle-version="1.15.0",
+ com.raytheon.uf.viz.xy.crosssection;bundle-version="1.15.0",
+ com.raytheon.uf.common.geospatial;bundle-version="1.15.0",
+ com.raytheon.uf.common.pointdata;bundle-version="1.15.0",
+ com.raytheon.viz.pointdata;bundle-version="1.15.0",
+ com.raytheon.uf.common.dataplugin.level;bundle-version="1.14.1",
+ com.raytheon.uf.common.derivparam;bundle-version="1.14.1",
+ com.raytheon.uf.viz.points;bundle-version="1.0.0",
+ com.raytheon.uf.viz.core.maps;bundle-version="1.14.1",
+ com.raytheon.uf.common.dataplugin;bundle-version="1.14.0",
+ com.raytheon.viz.grid;bundle-version="1.15.0",
+ com.raytheon.uf.viz.objectiveanalysis;bundle-version="1.15.0",
+ com.raytheon.uf.common.inventory;bundle-version="1.14.0",
+ com.raytheon.viz.awipstools;bundle-version="1.14.0",
+ com.raytheon.uf.viz.datacube;bundle-version="1.14.0",
+ com.raytheon.uf.viz.core.grid;bundle-version="1.15.0"
+Export-Package: com.raytheon.uf.viz.volumebrowser.dataplugin.point
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/build.properties b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/build.properties
new file mode 100644
index 0000000000..e9863e281e
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/plugin.xml b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/plugin.xml
new file mode 100644
index 0000000000..cfd7705b27
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/plugin.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/AbstractInventoryDataCatalog.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/AbstractInventoryDataCatalog.java
similarity index 92%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/AbstractInventoryDataCatalog.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/AbstractInventoryDataCatalog.java
index bb0ab2c8b8..3d0b6f3e4f 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/AbstractInventoryDataCatalog.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/AbstractInventoryDataCatalog.java
@@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin;
import java.util.ArrayList;
import java.util.Arrays;
@@ -45,6 +45,10 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.datacube.DataCubeContainer;
+import com.raytheon.viz.volumebrowser.datacatalog.AbstractDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.AvailableDataRequest;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
import com.raytheon.viz.volumebrowser.vbui.DataListsProdTableComp.DataSelection;
import com.raytheon.viz.volumebrowser.vbui.MenuItemManager;
import com.raytheon.viz.volumebrowser.vbui.SelectedData;
@@ -52,19 +56,21 @@ import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserAction;
/**
- * TODO Add Description
+ * Base {@link IDataCatalog} for plugin types that use an
+ * {@link AbstractInventory} to track parameter availability.
*
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Apr 14, 2010 bsteffen Initial creation
- * Jul 25, 2013 2112 bsteffen Fix volume browser sounding errors.
- * Jan 30, 2014 #2725 ekladstrup updated exception handling during move of derived
- * parameters to common
- * Sep 09, 2014 3356 njensen Remove CommunicationException
- * May 18, 2015 4412 bsteffen Use all level mappings for plane names
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Apr 14, 2010 bsteffen Initial creation
+ * Jul 25, 2013 2112 bsteffen Fix volume browser sounding errors.
+ * Jan 30, 2014 2725 ekladstr updated exception handling during move of derived
+ * parameters to common
+ * Sep 09, 2014 3356 njensen Remove CommunicationException
+ * May 18, 2015 4412 bsteffen Use all level mappings for plane names
+ * Aug 03, 2015 3861 bsteffen Move resource creation to ProductCreators
*
*
*
@@ -223,13 +229,13 @@ public abstract class AbstractInventoryDataCatalog extends AbstractDataCatalog {
protected Collection get3DPlanes(Collection sources) {
Set results = new HashSet();
if (sources == null || sources.isEmpty()) {
- results.addAll(getPointLineKeys());
+ results.addAll(PointLineUtil.getPointLineKeys());
results.addAll(MenuItemManager.getInstance().getLatLonKeys());
} else {
List allSources = getSupportedSourcesInternal();
for (String source : sources) {
if (allSources.contains(source)) {
- results.addAll(getPointLineKeys());
+ results.addAll(PointLineUtil.getPointLineKeys());
results.addAll(MenuItemManager.getInstance()
.getLatLonKeys());
}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridCrossSectionProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridCrossSectionProductCreator.java
new file mode 100644
index 0000000000..b1f51e318b
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridCrossSectionProductCreator.java
@@ -0,0 +1,68 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
+
+import java.util.Collection;
+
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.grid.GridEnsembleHelper.GridProductCreator;
+import com.raytheon.uf.viz.xy.crosssection.display.CrossSectionRenderableDisplay;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.CrossSectionProductCreator;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+
+/**
+ *
+ * {@link ProductCreator} for loading grid data on a
+ * {@link CrossSectionRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class GridCrossSectionProductCreator extends CrossSectionProductCreator
+ implements GridProductCreator {
+
+ @Override
+ public Collection getResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return GridEnsembleHelper.getResourcesToLoad(this, dataCatalog,
+ catalogEntry, displayType);
+ }
+
+ @Override
+ public Collection getBaseResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return super.getResourcesToLoad(dataCatalog, catalogEntry, displayType);
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/GridDataCatalog.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridDataCatalog.java
similarity index 81%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/GridDataCatalog.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridDataCatalog.java
index 05cd8c32d2..49d9e9793c 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/GridDataCatalog.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridDataCatalog.java
@@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
import java.util.ArrayList;
import java.util.Collection;
@@ -25,7 +25,6 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.NavigableSet;
import java.util.Set;
@@ -36,7 +35,6 @@ import org.geotools.geometry.jts.ReferencedEnvelope;
import org.opengis.geometry.BoundingBox;
import org.opengis.referencing.operation.MathTransform;
-import com.raytheon.uf.common.dataplugin.grid.GridConstants;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataplugin.level.util.LevelUtilities;
@@ -47,20 +45,15 @@ import com.raytheon.uf.common.gridcoverage.GridCoverage;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
-import com.raytheon.uf.viz.core.drawables.ResourcePair;
-import com.raytheon.uf.viz.core.exception.VizException;
-import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.DisplayType;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.D2DNSharpResourceData;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.GribNSharpResourceData;
import com.raytheon.uf.viz.points.PointsDataManager;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.AbstractInventoryDataCatalog;
import com.raytheon.viz.awipstools.ToolsDataManager;
import com.raytheon.viz.grid.inv.GridInventory;
-import com.raytheon.viz.grid.rsc.GridNameGenerator;
-import com.raytheon.viz.grid.rsc.GridResourceData;
import com.raytheon.viz.grid.util.CoverageUtils;
import com.raytheon.viz.grid.xml.FieldDisplayTypesFactory;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
import com.raytheon.viz.volumebrowser.vbui.MenuItemManager;
import com.raytheon.viz.volumebrowser.vbui.SelectedData;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.SpaceTimeMenu;
@@ -70,24 +63,25 @@ import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.LineString;
/**
- * Implements the IDataCatalog interface for grib data.
+ * Implements the IDataCatalog interface for grid data.
*
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * May 27, 2009 2161 lvenable Initial creation
- * Oct 21, 2009 1711 bsteffen Updated Baseline and Points to use new
- * ToolsDataManager
- * Nov 17, 2009 3120 rjpeter Updated to use LevelMappingFactory.
- * Jul 31, 2012 875 rferrel Now uses points.
- * May 30, 2013 2055 bsteffen Remove modelName from sounding pointName.
- * Dec 06, 2013 2271 mpduff Added check for null coordinate.
- * Jan 30, 2014 #2725 ekladstrup updated exception handling during move of derived
- * parameters to common
- * Mar 11, 2014 #2718 randerso Changes for GeoTools 10.5
- * Sep 09, 2014 3356 njensen Remove CommunicationException
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * May 27, 2009 2161 lvenable Initial creation
+ * Oct 21, 2009 1711 bsteffen Updated Baseline and Points to use new
+ * ToolsDataManager
+ * Nov 17, 2009 3120 rjpeter Updated to use LevelMappingFactory.
+ * Jul 31, 2012 875 rferrel Now uses points.
+ * May 30, 2013 2055 bsteffen Remove modelName from sounding pointName.
+ * Dec 06, 2013 2271 mpduff Added check for null coordinate.
+ * Jan 30, 2014 2725 ekladstr updated exception handling during move of derived
+ * parameters to common
+ * Mar 11, 2014 2718 randerso Changes for GeoTools 10.5
+ * Sep 09, 2014 3356 njensen Remove CommunicationException
+ * Aug 03, 2015 3861 bsteffen Move resource creation to ProductCreators
*
*
*
@@ -255,83 +249,6 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
return new String[] { GridInventory.PLUGIN_NAME };
}
- @Override
- protected AbstractRequestableResourceData getResourceData(
- IDataCatalogEntry catalogEntry, ResourceType resourceType) {
-
- AbstractRequestableResourceData rscData = null;
-
- switch (resourceType) {
- case PLAN_VIEW:
- GridResourceData gRscData = new GridResourceData();
-
- if (catalogEntry.getDialogSettings().getSpaceTimeSelection() == SpaceTimeMenu.SPACE) {
- gRscData.setSpatial(true);
- } else {
- gRscData.setNameGenerator(new GridNameGenerator(catalogEntry
- .getSelectedData().getPlanesText()));
- }
- rscData = gRscData;
-
- break;
-
- case SOUNDING:
- D2DNSharpResourceData tmpData = new GribNSharpResourceData(
- catalogEntry.getSelectedData().getSourcesKey());
- tmpData.setCoordinate(getPointCoordinate(catalogEntry));
- String pointName = catalogEntry.getSelectedData().getPlanesKey();
- tmpData.setPointName(pointName);
- rscData = tmpData;
- break;
- default:
- rscData = super.getResourceData(catalogEntry, resourceType);
- }
-
- return rscData;
- }
-
- @Override
- public Collection getResourcesToLoad(
- IDataCatalogEntry catalogEntry, ResourceType resourceType,
- DisplayType displayType) {
- Map metadataMap = getProductParameters(catalogEntry);
-
- List ensemebles = null;
- try {
- ensemebles = getGridInventory().getEnsembles(metadataMap);
- } catch (VizException e) {
- statusHandler.handle(Priority.PROBLEM,
- "Error occured during perturbation query.", e);
- }
- if ((ensemebles != null) && (ensemebles.size() > 1)) {
- Collections.sort(ensemebles);
- Collection requests = new ArrayList();
- for (String ensemble : ensemebles) {
- Collection origRequests = super
- .getResourcesToLoad(catalogEntry, resourceType,
- displayType);
- for (ResourcePair request : origRequests) {
- ((AbstractRequestableResourceData) request
- .getResourceData()).getMetadataMap().put(
- GridConstants.ENSEMBLE_ID,
- new RequestConstraint(ensemble.toString()));
- requests.add(request);
- }
- }
- return requests;
- } else {
- return super.getResourcesToLoad(catalogEntry, resourceType,
- displayType);
- }
- }
-
- /**
- * @return
- */
- private GridInventory getGridInventory() {
- return (GridInventory) getInventory();
- }
-
/*
* (non-Javadoc)
*
@@ -483,7 +400,7 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
|| (viewSelection == ViewMenu.TIMESERIES)) {
Set results = new HashSet();
results.addAll(MenuItemManager.getInstance().getLatLonKeys());
- results.addAll(getPointLineKeys());
+ results.addAll(PointLineUtil.getPointLineKeys());
return results;
}
ToolsDataManager tdm = ToolsDataManager.getInstance();
@@ -497,7 +414,7 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
Set results = new HashSet();
results.addAll(MenuItemManager.getInstance()
.getLatLonKeys());
- results.addAll(getPointLineKeys());
+ results.addAll(PointLineUtil.getPointLineKeys());
return results;
}
for (GridCoverage coverage : coverages) {
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/GridDataCatalogEntry.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridDataCatalogEntry.java
similarity index 84%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/GridDataCatalogEntry.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridDataCatalogEntry.java
index 6f9f9bd8c9..c0238ad5c4 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/GridDataCatalogEntry.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridDataCatalogEntry.java
@@ -17,12 +17,13 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
import java.util.HashMap;
import java.util.Map;
import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogEntry;
import com.raytheon.viz.volumebrowser.vbui.SelectedData;
/**
@@ -33,9 +34,10 @@ import com.raytheon.viz.volumebrowser.vbui.SelectedData;
*
* SOFTWARE HISTORY
*
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Sep 25, 2012 bsteffen Initial javadoc
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Sep 25, 2012 bsteffen Initial javadoc
+ * Aug 03, 2015 3861 bsteffen Move to new plugin
*
*
*
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridEnsembleHelper.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridEnsembleHelper.java
new file mode 100644
index 0000000000..a4daacd318
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridEnsembleHelper.java
@@ -0,0 +1,125 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import com.raytheon.uf.common.dataplugin.grid.GridConstants;
+import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
+import com.raytheon.uf.common.status.IUFStatusHandler;
+import com.raytheon.uf.common.status.UFStatus;
+import com.raytheon.uf.common.status.UFStatus.Priority;
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.exception.VizException;
+import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.datacube.DataCubeContainer;
+import com.raytheon.viz.grid.inv.GridInventory;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+
+/**
+ *
+ * Provides static methods to allow multiple {@link ProductCreator} to share the
+ * same logic for loading multiple resources when the selected source is an
+ * ensemble model.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class GridEnsembleHelper {
+ private static final transient IUFStatusHandler statusHandler = UFStatus
+ .getHandler(GridEnsembleHelper.class);
+
+ public static interface GridProductCreator extends ProductCreator{
+ public Collection getBaseResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType);
+ }
+
+ public static Collection getResourcesToLoad(
+ GridProductCreator creator, IDataCatalog dataCatalog,
+ IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ List ensembles = GridEnsembleHelper.getEnsembles(dataCatalog,
+ catalogEntry);
+ if (ensembles != null) {
+ Collection full = new ArrayList();
+ for (String ensemble : ensembles) {
+ Collection single = creator
+ .getBaseResourcesToLoad(dataCatalog, catalogEntry,
+ displayType);
+ GridEnsembleHelper.addEnsemble(single, ensemble);
+ full.addAll(single);
+ }
+ return full;
+ } else {
+ return creator.getBaseResourcesToLoad(dataCatalog, catalogEntry,
+ displayType);
+ }
+ }
+
+ private static List getEnsembles(IDataCatalog dataCatalog,
+ IDataCatalogEntry catalogEntry) {
+ Map metadataMap = dataCatalog
+ .getProductParameters(catalogEntry);
+ List ensembles = null;
+ try {
+ ensembles = getGridInventory().getEnsembles(metadataMap);
+ if (ensembles != null && ensembles.size() > 1) {
+ Collections.sort(ensembles);
+ } else {
+ ensembles = null;
+ }
+ } catch (VizException e) {
+ statusHandler.handle(Priority.PROBLEM,
+ "Error occured during perturbation query.", e);
+ }
+ return ensembles;
+ }
+
+ private static void addEnsemble(Collection resources,
+ String ensemble) {
+ for (ResourcePair pair : resources) {
+ AbstractRequestableResourceData data = ((AbstractRequestableResourceData) pair
+ .getResourceData());
+ data.getMetadataMap().put(GridConstants.ENSEMBLE_ID,
+ new RequestConstraint(ensemble.toString()));
+ }
+ }
+
+ private static GridInventory getGridInventory() {
+ return (GridInventory) DataCubeContainer
+ .getInventory(GridConstants.GRID);
+ }
+}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridMapProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridMapProductCreator.java
new file mode 100644
index 0000000000..97a99b13db
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridMapProductCreator.java
@@ -0,0 +1,87 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
+
+import java.util.Collection;
+
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.maps.display.MapRenderableDisplay;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.grid.GridEnsembleHelper.GridProductCreator;
+import com.raytheon.viz.grid.rsc.GridNameGenerator;
+import com.raytheon.viz.grid.rsc.GridResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.AbstractMapProductCreator;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.SpaceTimeMenu;
+
+/**
+ *
+ * {@link ProductCreator} for loading grid data on a
+ * {@link MapRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class GridMapProductCreator extends AbstractMapProductCreator implements
+ GridProductCreator {
+
+ @Override
+ public Collection getResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return GridEnsembleHelper.getResourcesToLoad(this, dataCatalog,
+ catalogEntry, displayType);
+ }
+
+ @Override
+ public Collection getBaseResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return super.getResourcesToLoad(dataCatalog, catalogEntry, displayType);
+ }
+
+ @Override
+ protected GridResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ GridResourceData gRscData = new GridResourceData();
+
+ if (catalogEntry.getDialogSettings().getSpaceTimeSelection() == SpaceTimeMenu.SPACE) {
+ System.out
+ .println("Loading a Plan View Space Grid Resource from the Volume Browser.");
+ gRscData.setSpatial(true);
+ } else {
+ gRscData.setNameGenerator(new GridNameGenerator(catalogEntry
+ .getSelectedData().getPlanesText()));
+ }
+ return gRscData;
+ }
+
+}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridTimeHeightProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridTimeHeightProductCreator.java
new file mode 100644
index 0000000000..12a3ba86ed
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridTimeHeightProductCreator.java
@@ -0,0 +1,68 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
+
+import java.util.Collection;
+
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.grid.GridEnsembleHelper.GridProductCreator;
+import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightRenderableDisplay;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+import com.raytheon.viz.volumebrowser.loader.TimeHeightProductCreator;
+
+/**
+ *
+ * {@link ProductCreator} for loading grid data on a
+ * {@link TimeHeightRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class GridTimeHeightProductCreator extends TimeHeightProductCreator
+ implements GridProductCreator {
+
+ @Override
+ public Collection getResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return GridEnsembleHelper.getResourcesToLoad(this, dataCatalog,
+ catalogEntry, displayType);
+ }
+
+ @Override
+ public Collection getBaseResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return super.getResourcesToLoad(dataCatalog, catalogEntry, displayType);
+ }
+
+}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridTimeSeriesProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridTimeSeriesProductCreator.java
new file mode 100644
index 0000000000..8a4a9825c2
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridTimeSeriesProductCreator.java
@@ -0,0 +1,68 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
+
+import java.util.Collection;
+
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.grid.GridEnsembleHelper.GridProductCreator;
+import com.raytheon.uf.viz.xy.timeseries.display.TimeSeriesRenderableDisplay;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+import com.raytheon.viz.volumebrowser.loader.TimeSeriesProductCreator;
+
+/**
+ *
+ * {@link ProductCreator} for loading grid data on a
+ * {@link TimeSeriesRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class GridTimeSeriesProductCreator extends TimeSeriesProductCreator
+ implements GridProductCreator {
+
+ @Override
+ public Collection getResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return GridEnsembleHelper.getResourcesToLoad(this, dataCatalog,
+ catalogEntry, displayType);
+ }
+
+ @Override
+ public Collection getBaseResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return super.getResourcesToLoad(dataCatalog, catalogEntry, displayType);
+ }
+
+}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridVarHeightProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridVarHeightProductCreator.java
new file mode 100644
index 0000000000..c1d967480a
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/grid/GridVarHeightProductCreator.java
@@ -0,0 +1,68 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.grid;
+
+import java.util.Collection;
+
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.grid.GridEnsembleHelper.GridProductCreator;
+import com.raytheon.uf.viz.xy.varheight.display.VarHeightRenderableDisplay;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+import com.raytheon.viz.volumebrowser.loader.VarHeightProductCreator;
+
+/**
+ *
+ * {@link ProductCreator} for loading grid data on a
+ * {@link VarHeightRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class GridVarHeightProductCreator extends VarHeightProductCreator
+ implements GridProductCreator {
+
+ @Override
+ public Collection getResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return GridEnsembleHelper.getResourcesToLoad(this, dataCatalog,
+ catalogEntry, displayType);
+ }
+
+ @Override
+ public Collection getBaseResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ return super.getResourcesToLoad(dataCatalog, catalogEntry, displayType);
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/DmdDataCatalog.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/DmdDataCatalog.java
similarity index 77%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/DmdDataCatalog.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/DmdDataCatalog.java
index 08030b6420..77e1469df2 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/DmdDataCatalog.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/DmdDataCatalog.java
@@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
import java.util.Arrays;
import java.util.Collection;
@@ -28,19 +28,45 @@ import java.util.List;
import java.util.Set;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
+import com.raytheon.viz.volumebrowser.datacatalog.AbstractDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.AvailableDataRequest;
+import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogEntry;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
import com.raytheon.viz.volumebrowser.vbui.SelectedData;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
+/**
+ *
+ * Implements the IDataCatalog interface for dmd data.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------ ---------- ----------- --------------------------
+ * Aug 3, 2015 bsteffen Initial javadoc
+ *
+ *
+ *
+ * @author bsteffen
+ * @version 1.0
+ */
public class DmdDataCatalog extends AbstractDataCatalog {
private static final String[] fieldPlanePairs = { "LowLyr:ShrMag",
"MaxShear:ShrMag", "LowLyr:wDiv", "MidLyr:wDiv", "LowLyr:g2gsh",
"LowLyr:RRV", "MaxWind:RRV", "LowLyr:diam", "Layer:sRank",
"LowLyr:GH", "MaxWind:GH", "MaxShear:GH", "HiLyr:GH", "LowLyr:P",
- "MaxWind:P", "MaxShear:P", "HiLyr:P", POINT_LINE_KEY + ":ShrMag",
- POINT_LINE_KEY + ":wDiv", POINT_LINE_KEY + ":g2gsh",
- POINT_LINE_KEY + ":RRV", POINT_LINE_KEY + ":diam",
- POINT_LINE_KEY + ":GH", POINT_LINE_KEY + ":P" };
+ "MaxWind:P", "MaxShear:P", "HiLyr:P",
+ PointLineUtil.POINT_LINE_KEY + ":ShrMag",
+ PointLineUtil.POINT_LINE_KEY + ":wDiv",
+ PointLineUtil.POINT_LINE_KEY + ":g2gsh",
+ PointLineUtil.POINT_LINE_KEY + ":RRV",
+ PointLineUtil.POINT_LINE_KEY + ":diam",
+ PointLineUtil.POINT_LINE_KEY + ":GH",
+ PointLineUtil.POINT_LINE_KEY + ":P" };
@Override
protected void addProductParameters(IDataCatalogEntry catalogEntry,
@@ -72,7 +98,7 @@ public class DmdDataCatalog extends AbstractDataCatalog {
if (!getAvailablePlanes(selectedSources, selectedFields).contains(
selectedData.getPlanesKey())
- && !isPointLine(selectedData.getPlanesKey())) {
+ && !PointLineUtil.isPointLine(selectedData.getPlanesKey())) {
return null;
}
@@ -107,13 +133,14 @@ public class DmdDataCatalog extends AbstractDataCatalog {
List planes = Arrays.asList(selectedPlanes);
boolean hasPointLine = false;
for (String plane : planes) {
- hasPointLine = hasPointLine || isPointLine(plane);
+ hasPointLine = hasPointLine || PointLineUtil.isPointLine(plane);
}
for (String fieldPlanePair : fieldPlanePairs) {
String[] split = fieldPlanePair.split(":");
if (planes.isEmpty() || planes.contains(split[0])) {
fields.add(split[1]);
- } else if (hasPointLine && split[0].equals(POINT_LINE_KEY)) {
+ } else if (hasPointLine
+ && split[0].equals(PointLineUtil.POINT_LINE_KEY)) {
fields.add(split[1]);
}
}
@@ -131,8 +158,8 @@ public class DmdDataCatalog extends AbstractDataCatalog {
for (String fieldPlanePair : fieldPlanePairs) {
String[] split = fieldPlanePair.split(":");
if (fields.contains(split[1]) || fields.isEmpty()) {
- if (split[0].equals(POINT_LINE_KEY)) {
- for (String plane : getPointLineKeys()) {
+ if (split[0].equals(PointLineUtil.POINT_LINE_KEY)) {
+ for (String plane : PointLineUtil.getPointLineKeys()) {
planes.add(plane);
}
} else {
@@ -151,7 +178,7 @@ public class DmdDataCatalog extends AbstractDataCatalog {
List planes = Arrays.asList(selectedPlanes);
boolean hasPointLine = false;
for (String plane : planes) {
- hasPointLine = hasPointLine || isPointLine(plane);
+ hasPointLine = hasPointLine || PointLineUtil.isPointLine(plane);
}
for (String fieldPlanePair : fieldPlanePairs) {
String[] split = fieldPlanePair.split(":");
@@ -159,7 +186,8 @@ public class DmdDataCatalog extends AbstractDataCatalog {
if (planes.contains(split[0]) || planes.isEmpty()) {
return Arrays.asList("radar149");
- } else if (hasPointLine && split[0].equals(POINT_LINE_KEY)) {
+ } else if (hasPointLine
+ && split[0].equals(PointLineUtil.POINT_LINE_KEY)) {
return Arrays.asList("radar149");
}
}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/ModelSoundingCatalog.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/ModelSoundingCatalog.java
similarity index 91%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/ModelSoundingCatalog.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/ModelSoundingCatalog.java
index 6c68a9f184..2426b48286 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/ModelSoundingCatalog.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/ModelSoundingCatalog.java
@@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
import java.util.ArrayList;
import java.util.Arrays;
@@ -36,6 +36,8 @@ import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.viz.pointdata.StaticPlotInfoPV;
import com.raytheon.viz.pointdata.StaticPlotInfoPV.SPIEntry;
+import com.raytheon.viz.volumebrowser.datacatalog.AvailableDataRequest;
+import com.raytheon.viz.volumebrowser.datacatalog.DelegateAvailableRequest;
import com.raytheon.viz.volumebrowser.vbui.SelectedData;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
import com.raytheon.viz.volumebrowser.xml.VbSource;
@@ -48,15 +50,16 @@ import com.raytheon.viz.volumebrowser.xml.VbSourceList;
*
* SOFTWARE HISTORY
*
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Sep 28, 2011 mschenke Initial creation
- * May 02, 2013 1949 bsteffen Force ModelSounding in Vb to play nicely
- * with others.
- * Jul 23, 2014 3410 bclement location changed to floats
- * Aug 19, 2014 3506 mapeters Modified getTypeMap function to still get
- * correct VB sources after splitting them
- * into multiple files.
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Sep 28, 2011 mschenke Initial creation
+ * May 02, 2013 1949 bsteffen Force ModelSounding in Vb to play nicely
+ * with others.
+ * Jul 23, 2014 3410 bclement location changed to floats
+ * Aug 19, 2014 3506 mapeters Modified getTypeMap function to still get
+ * correct VB sources after splitting them
+ * into multiple files.
+ * Aug 03, 2015 3861 bsteffen Move to volumebrowser.dataplugin plugin.
*
*
*
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/OAMapProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/OAMapProductCreator.java
new file mode 100644
index 0000000000..a9f0b40e3a
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/OAMapProductCreator.java
@@ -0,0 +1,73 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
+
+import com.raytheon.uf.common.time.BinOffset;
+import com.raytheon.uf.viz.core.maps.display.MapRenderableDisplay;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.objectiveanalysis.rsc.OAResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.AbstractMapProductCreator;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+
+/**
+ *
+ * {@link ProductCreator} for loading objective analysis data on a
+ * {@link MapRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class OAMapProductCreator extends AbstractMapProductCreator {
+
+ @Override
+ protected OAResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ String sourceText = catalogEntry.getSelectedData().getSourcesText();
+
+ OAResourceData rscData = new OAResourceData();
+ if (sourceText.equals("RaobOA")) {
+ BinOffset binOffset = new BinOffset(3600, 3600);
+ rscData.setBinOffset(binOffset);
+ } else if (sourceText.equals("MetarOA")) {
+ BinOffset binOffset = new BinOffset(1800, 1800);
+ rscData.setBinOffset(binOffset);
+ }
+ rscData.setParameter(catalogEntry.getSelectedData().getFieldsKey());
+ rscData.setParameterName(catalogEntry.getSelectedData().getFieldsText());
+ rscData.setSource(sourceText);
+ String levelKey = catalogEntry.getSelectedData().getPlanesKey();
+ rscData.setLevelKey(levelKey);
+ rscData.setRetrieveData(false);
+ rscData.setUpdatingOnMetadataOnly(true);
+ return rscData;
+ }
+
+}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/OATimeSeriesProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/OATimeSeriesProductCreator.java
new file mode 100644
index 0000000000..4f788a6c3e
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/OATimeSeriesProductCreator.java
@@ -0,0 +1,66 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
+
+import com.raytheon.uf.common.time.BinOffset;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.xy.timeseries.display.TimeSeriesRenderableDisplay;
+import com.raytheon.uf.viz.xy.timeseries.rsc.TimeSeriesResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+import com.raytheon.viz.volumebrowser.loader.TimeSeriesProductCreator;
+
+/**
+ *
+ * {@link ProductCreator} for loading objective analysis data on a
+ * {@link TimeSeriesRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class OATimeSeriesProductCreator extends TimeSeriesProductCreator {
+
+ @Override
+ protected TimeSeriesResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ TimeSeriesResourceData resourceData = super.createNewResourceData(
+ dataCatalog, catalogEntry, displayType);
+ String sourceText = catalogEntry.getSelectedData().getSourcesText();
+ if (sourceText.equals("RaobOA")) {
+ BinOffset binOffset = new BinOffset(3600, 3600);
+ resourceData.setBinOffset(binOffset);
+ } else if (sourceText.equals("MetarOA")) {
+ BinOffset binOffset = new BinOffset(1800, 1800);
+ resourceData.setBinOffset(binOffset);
+ }
+ return resourceData;
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/PointAvailableDataRequest.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointAvailableDataRequest.java
similarity index 89%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/PointAvailableDataRequest.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointAvailableDataRequest.java
index 525de3e2df..b999236cf7 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/PointAvailableDataRequest.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointAvailableDataRequest.java
@@ -17,7 +17,10 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
+
+import com.raytheon.viz.volumebrowser.datacatalog.AvailableDataRequest;
+import com.raytheon.viz.volumebrowser.datacatalog.DelegateAvailableRequest;
/**
*
@@ -31,6 +34,7 @@ package com.raytheon.viz.volumebrowser.datacatalog;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 25, 2011 bsteffen Initial creation
+ * Aug 03, 2015 3861 bsteffen Move to volumebrowser.dataplugin plugin.
*
*
*
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointCrossSectionProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointCrossSectionProductCreator.java
new file mode 100644
index 0000000000..334ee27dae
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointCrossSectionProductCreator.java
@@ -0,0 +1,88 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.raytheon.uf.common.pointdata.spatial.SurfaceObsLocation;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.xy.crosssection.display.CrossSectionRenderableDisplay;
+import com.raytheon.uf.viz.xy.crosssection.rsc.CrossSectionResourceData;
+import com.raytheon.viz.awipstools.ToolsDataManager;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.CrossSectionProductCreator;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.LineString;
+
+/**
+ *
+ * {@link ProductCreator} for loading point data on a
+ * {@link CrossSectionRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class PointCrossSectionProductCreator extends CrossSectionProductCreator {
+
+ @Override
+ protected CrossSectionResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ CrossSectionResourceData resourceData = super.createNewResourceData(
+ dataCatalog, catalogEntry, displayType);
+ if (!(dataCatalog instanceof PointDataCatalog)) {
+ return resourceData;
+ }
+ PointDataCatalog pointCatalog = (PointDataCatalog) dataCatalog;
+ String sourceKey = catalogEntry.getSelectedData().getSourcesKey();
+ List closest = new ArrayList();
+ String letter = catalogEntry.getSelectedData().getPlanesKey()
+ .replace("Line", "");
+ LineString line = ToolsDataManager.getInstance().getBaseline(letter);
+ Coordinate[] newLine = new Coordinate[line.getNumPoints()];
+ for (int i = 0; i < line.getNumPoints(); i++) {
+ SurfaceObsLocation loc = pointCatalog.getClosestStation(
+ line.getCoordinateN(i),
+ sourceKey, closest);
+ if (loc == null) {
+ break;
+ }
+ closest.add(loc.getStationId());
+ newLine[i] = new Coordinate(loc.getLongitude(), loc.getLatitude());
+ }
+ ToolsDataManager.getInstance().setBaseline(letter,
+ line.getFactory().createLineString(newLine));
+ resourceData.setStationIDs(closest);
+ return resourceData;
+ }
+
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/PointDataCatalog.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointDataCatalog.java
similarity index 76%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/PointDataCatalog.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointDataCatalog.java
index 39e0a13fd7..2c6ea1cd17 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/PointDataCatalog.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointDataCatalog.java
@@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
import java.util.ArrayList;
import java.util.Arrays;
@@ -40,22 +40,16 @@ import com.raytheon.uf.common.pointdata.spatial.SurfaceObsLocation;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
-import com.raytheon.uf.common.time.BinOffset;
import com.raytheon.uf.viz.core.catalog.DbQuery;
import com.raytheon.uf.viz.core.exception.VizException;
-import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.BufruaNSharpResourceData;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.GoesSndNSharpResourceData;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.MdlSndNSharpResourceData;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.PoesSndNSharpResourceData;
-import com.raytheon.uf.viz.objectiveanalysis.rsc.OAResourceData;
import com.raytheon.uf.viz.points.PointsDataManager;
-import com.raytheon.uf.viz.xy.crosssection.rsc.CrossSectionResourceData;
-import com.raytheon.uf.viz.xy.timeheight.rsc.TimeHeightResourceData;
-import com.raytheon.uf.viz.xy.varheight.rsc.VarHeightResourceData;
+import com.raytheon.uf.viz.volumebrowser.dataplugin.AbstractInventoryDataCatalog;
import com.raytheon.viz.awipstools.ToolsDataManager;
import com.raytheon.viz.pointdata.util.AbstractPointDataInventory;
+import com.raytheon.viz.volumebrowser.datacatalog.AvailableDataRequest;
+import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogEntry;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
import com.raytheon.viz.volumebrowser.vbui.SelectedData;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserAction;
@@ -69,17 +63,18 @@ import com.vividsolutions.jts.geom.LineString;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Dec 01, 2009 bsteffen Initial creation
- * May 08, 2013 DR14824 mgamazaychikov Added alterProductParameters method
- * May 09, 2013 1869 bsteffen Modified D2D time series of point data to
- * work without dataURI.
- * Aug 15, 2013 2258 bsteffen Convert profiler sounding to var height
- * with hodo.
- * Aug 15, 2013 2260 bsteffen Switch poessounding to NSharp.
- * Jul 23, 2014 3410 bclement location changed to floats
- * Sep 09, 2014 3356 njensen Remove CommunicationException
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Dec 01, 2009 bsteffen Initial creation
+ * May 08, 2013 14824 mgamazay Added alterProductParameters method
+ * May 09, 2013 1869 bsteffen Modified D2D time series of point data to
+ * work without dataURI.
+ * Aug 15, 2013 2258 bsteffen Convert profiler sounding to var height
+ * with hodo.
+ * Aug 15, 2013 2260 bsteffen Switch poessounding to NSharp.
+ * Jul 23, 2014 3410 bclement location changed to floats
+ * Sep 09, 2014 3356 njensen Remove CommunicationException
+ * Aug 03, 2015 3861 bsteffen Move resource creation to ProductCreators
*
*
*
@@ -182,12 +177,12 @@ public class PointDataCatalog extends AbstractInventoryDataCatalog {
}
}
- protected SurfaceObsLocation getClosestStation(Coordinate coordinate,
+ public SurfaceObsLocation getClosestStation(Coordinate coordinate,
String sourceKey) {
return getClosestStation(coordinate, sourceKey, null);
}
- protected SurfaceObsLocation getClosestStation(Coordinate coordinate,
+ public SurfaceObsLocation getClosestStation(Coordinate coordinate,
String sourceKey, Collection ignore) {
SurfaceObsLocation[] availableStations = getStationLocations(sourceKey);
if ((availableStations == null) || (availableStations.length == 0)
@@ -253,12 +248,13 @@ public class PointDataCatalog extends AbstractInventoryDataCatalog {
IDataCatalogEntry catalogEntry,
HashMap productParameters,
String constraintKey) {
- if (!isPointLine(catalogEntry.getSelectedData().getPlanesKey())
+ if (!PointLineUtil.isPointLine(catalogEntry.getSelectedData()
+ .getPlanesKey())
&& (catalogEntry.getDialogSettings().getViewSelection() != ViewMenu.TIMESERIES)) {
return;
}
if (catalogEntry.getSelectedData().getSourcesKey().endsWith("OA")) {
- Coordinate current = getPointCoordinate(catalogEntry);
+ Coordinate current = PointLineUtil.getPointCoordinate(catalogEntry);
double lon0 = current.x - 5;
double lon1 = current.y + 5;
double lat0 = current.y - 5;
@@ -301,7 +297,8 @@ public class PointDataCatalog extends AbstractInventoryDataCatalog {
}
productParameters.put(constraintKey, stationRC);
} else {
- Coordinate coordinate = getPointCoordinate(catalogEntry);
+ Coordinate coordinate = PointLineUtil
+ .getPointCoordinate(catalogEntry);
if (coordinate != null) {
String sourceKey = catalogEntry.getSelectedData()
@@ -406,108 +403,6 @@ public class PointDataCatalog extends AbstractInventoryDataCatalog {
.getLevelMappingForKey("Station").getLevels();
}
- @Override
- protected AbstractRequestableResourceData getResourceData(
- IDataCatalogEntry catalogEntry, ResourceType resourceType) {
- String sourceKey = catalogEntry.getSelectedData().getSourcesKey();
- String sourceText = catalogEntry.getSelectedData().getSourcesText();
-
- switch (resourceType) {
- case PLAN_VIEW:
- OAResourceData rscData = new OAResourceData();
- // TODO this should be configurable
- if (sourceText.equals("RaobOA")) {
- BinOffset binOffset = new BinOffset(3600, 3600);
- rscData.setBinOffset(binOffset);
- } else if (sourceText.equals("MetarOA")) {
- BinOffset binOffset = new BinOffset(1800, 1800);
- rscData.setBinOffset(binOffset);
- }
- rscData.setParameter(catalogEntry.getSelectedData().getFieldsKey());
- rscData.setParameterName(catalogEntry.getSelectedData()
- .getFieldsText());
- rscData.setSource(sourceText);
- String levelKey = catalogEntry.getSelectedData().getPlanesKey();
- rscData.setLevelKey(levelKey);
- rscData.setRetrieveData(false);
- rscData.setUpdatingOnMetadataOnly(true);
- return rscData;
- case TIME_SERIES:
- AbstractRequestableResourceData resourceData = super
- .getResourceData(catalogEntry, resourceType);
- // TODO this should be configurable, and shared with PLAN_VIEW
- if (sourceText.equals("RaobOA")) {
- BinOffset binOffset = new BinOffset(3600, 3600);
- resourceData.setBinOffset(binOffset);
- } else if (sourceText.equals("MetarOA")) {
- BinOffset binOffset = new BinOffset(1800, 1800);
- resourceData.setBinOffset(binOffset);
- }
- return resourceData;
- case TIME_HEIGHT:
- resourceData = getResourceData(catalogEntry, resourceType,
- new TimeHeightResourceData());
-
- Coordinate coordinate = getPointCoordinate(catalogEntry);
- SurfaceObsLocation closestLoc = getClosestStation(coordinate,
- sourceKey);
- Coordinate closestCoord = new Coordinate(closestLoc.getLongitude(),
- closestLoc.getLatitude());
- ((TimeHeightResourceData) resourceData)
- .setPointCoordinate(closestCoord);
-
- String pointLetter = getPointLetter(catalogEntry);
- PointsDataManager.getInstance().setCoordinate(pointLetter,
- closestCoord);
- return resourceData;
- case CROSS_SECTION:
- resourceData = super.getResourceData(catalogEntry, resourceType);
- List closest = new ArrayList();
- String letter = catalogEntry.getSelectedData().getPlanesKey()
- .replace("Line", "");
- LineString line = ToolsDataManager.getInstance()
- .getBaseline(letter);
- Coordinate[] newLine = new Coordinate[line.getNumPoints()];
- for (int i = 0; i < line.getNumPoints(); i++) {
- SurfaceObsLocation loc = getClosestStation(
- line.getCoordinateN(i), sourceKey, closest);
- if (loc == null) {
- break;
- }
- closest.add(loc.getStationId());
- newLine[i] = new Coordinate(loc.getLongitude(),
- loc.getLatitude());
- }
- ToolsDataManager.getInstance().setBaseline(letter,
- line.getFactory().createLineString(newLine));
- ((CrossSectionResourceData) resourceData).setStationIDs(closest);
- return resourceData;
- case SOUNDING:
- if (getPlugin(sourceKey).equals("bufrua")) {
- return new BufruaNSharpResourceData();
- } else if (sourceKey.equals("modelsoundingETA")) {
- return new MdlSndNSharpResourceData("NAMSND");
- } else if (sourceKey.equals("modelsoundingGFS")) {
- return new MdlSndNSharpResourceData("GFSSND");
- } else if (sourceKey.equals("poessounding")) {
- return new PoesSndNSharpResourceData();
- } else if (sourceKey.equals("goessounding")) {
- return new GoesSndNSharpResourceData();
- } else if (sourceKey.equals("profiler")) {
- VarHeightResourceData vhData = new VarHeightResourceData();
- vhData.setPoint(getPointCoordinate(catalogEntry));
- vhData.setParameter("Wind");
- vhData.setParameterName("Wind");
- vhData.setPointLetter(getPointLetter(catalogEntry));
- vhData.setSource(sourceText);
- return vhData;
- }
- default:
- return super.getResourceData(catalogEntry, resourceType);
- }
-
- }
-
@Override
protected boolean isValidSelection(SelectedData selData) {
try {
@@ -619,7 +514,7 @@ public class PointDataCatalog extends AbstractInventoryDataCatalog {
|| (viewSelection == ViewMenu.PLANVIEW)
|| (viewSelection == ViewMenu.TIMESERIES)) {
Set results = new HashSet();
- results.addAll(getPointLineKeys());
+ results.addAll(PointLineUtil.getPointLineKeys());
return results;
}
ToolsDataManager tdm = ToolsDataManager.getInstance();
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointTimeHeightProductCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointTimeHeightProductCreator.java
new file mode 100644
index 0000000000..c610f851e3
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/PointTimeHeightProductCreator.java
@@ -0,0 +1,76 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
+
+import com.raytheon.uf.common.pointdata.spatial.SurfaceObsLocation;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.points.PointsDataManager;
+import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightRenderableDisplay;
+import com.raytheon.uf.viz.xy.timeheight.rsc.TimeHeightResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+import com.raytheon.viz.volumebrowser.loader.TimeHeightProductCreator;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
+import com.vividsolutions.jts.geom.Coordinate;
+
+/**
+ *
+ * {@link ProductCreator} for loading point data on a
+ * {@link TimeHeightRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class PointTimeHeightProductCreator extends TimeHeightProductCreator {
+
+ @Override
+ protected TimeHeightResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ TimeHeightResourceData resourceData = super.createNewResourceData(
+ dataCatalog, catalogEntry, displayType);
+ if (!(dataCatalog instanceof PointDataCatalog)) {
+ return resourceData;
+ }
+ PointDataCatalog pointCatalog = (PointDataCatalog) dataCatalog;
+ String sourceKey = catalogEntry.getSelectedData().getSourcesKey();
+ Coordinate coordinate = PointLineUtil.getPointCoordinate(catalogEntry);
+ SurfaceObsLocation closestLoc = pointCatalog.getClosestStation(
+ coordinate, sourceKey);
+ Coordinate closestCoord = new Coordinate(closestLoc.getLongitude(),
+ closestLoc.getLatitude());
+ resourceData.setPointCoordinate(closestCoord);
+
+ String pointLetter = PointLineUtil.getPointLetter(catalogEntry);
+ PointsDataManager.getInstance()
+ .setCoordinate(pointLetter, closestCoord);
+ return resourceData;
+ }
+
+}
diff --git a/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/VwpCrossSectionCreator.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/VwpCrossSectionCreator.java
new file mode 100644
index 0000000000..402e2ff932
--- /dev/null
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/VwpCrossSectionCreator.java
@@ -0,0 +1,58 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
+
+import com.raytheon.uf.common.time.BinOffset;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.xy.crosssection.display.CrossSectionRenderableDisplay;
+import com.raytheon.uf.viz.xy.crosssection.rsc.CrossSectionResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.loader.ProductCreator;
+
+/**
+ *
+ * {@link ProductCreator} for loading vwp data on a
+ * {@link CrossSectionRenderableDisplay}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class VwpCrossSectionCreator extends PointCrossSectionProductCreator {
+
+ @Override
+ protected CrossSectionResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ CrossSectionResourceData data = super
+ .createNewResourceData(dataCatalog, catalogEntry, displayType);
+ data.setBinOffset(new BinOffset(120, 120));
+ return data;
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/VwpDataCatalog.java b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/VwpDataCatalog.java
similarity index 68%
rename from cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/VwpDataCatalog.java
rename to cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/VwpDataCatalog.java
index 8b4f338104..a8fb7e963c 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/VwpDataCatalog.java
+++ b/cave/com.raytheon.uf.viz.volumebrowser.dataplugin/src/com/raytheon/uf/viz/volumebrowser/dataplugin/point/VwpDataCatalog.java
@@ -17,31 +17,30 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
-package com.raytheon.viz.volumebrowser.datacatalog;
+package com.raytheon.uf.viz.volumebrowser.dataplugin.point;
import java.util.HashMap;
import java.util.List;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.pointdata.spatial.SurfaceObsLocation;
-import com.raytheon.uf.common.time.BinOffset;
import com.raytheon.uf.viz.core.catalog.DbQuery;
import com.raytheon.uf.viz.core.exception.VizException;
-import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
-import com.raytheon.uf.viz.xy.varheight.rsc.VarHeightResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
/**
*
- * Catalog for radar point data(VWP, DMD).
+ * Catalog for radar VWP data.
*
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Dec 1, 2009 bsteffen Initial creation
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Dec 01, 2009 bsteffen Initial creation
+ * Aug 03, 2015 3861 bsteffen Move resource creation to ProductCreators
+ *
*
*
*
@@ -92,29 +91,5 @@ public class VwpDataCatalog extends PointDataCatalog {
productParameters.put("productCode", new RequestConstraint("48"));
}
- protected AbstractRequestableResourceData getResourceData(
- IDataCatalogEntry catalogEntry, ResourceType resourceType) {
-
- AbstractRequestableResourceData resourceData = super.getResourceData(
- catalogEntry, resourceType);
- ;
-
- switch (resourceType) {
-
- case CROSS_SECTION:
- resourceData.setBinOffset(new BinOffset(120, 120));
- break;
- case SOUNDING:
- VarHeightResourceData vhData = new VarHeightResourceData();
- vhData.setPoint(getPointCoordinate(catalogEntry));
- vhData.setParameter("Wind");
- vhData.setParameterName("Wind");
- vhData.setPointLetter(getPointLetter(catalogEntry));
- vhData.setSource(catalogEntry.getSelectedData().getSourcesText());
- resourceData = vhData;
- break;
- }
- return resourceData;
- }
}
diff --git a/cave/com.raytheon.viz.volumebrowser.feature/feature.xml b/cave/com.raytheon.viz.volumebrowser.feature/feature.xml
index 59af733309..d9a994b800 100644
--- a/cave/com.raytheon.viz.volumebrowser.feature/feature.xml
+++ b/cave/com.raytheon.viz.volumebrowser.feature/feature.xml
@@ -38,4 +38,11 @@
install-size="0"
version="0.0.0"/>
+
+
diff --git a/cave/com.raytheon.viz.volumebrowser/META-INF/MANIFEST.MF b/cave/com.raytheon.viz.volumebrowser/META-INF/MANIFEST.MF
index 0ed6298526..8b6561ff46 100644
--- a/cave/com.raytheon.viz.volumebrowser/META-INF/MANIFEST.MF
+++ b/cave/com.raytheon.viz.volumebrowser/META-INF/MANIFEST.MF
@@ -2,12 +2,11 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Volume Browser Plug-in
Bundle-SymbolicName: com.raytheon.viz.volumebrowser;singleton:=true
-Bundle-Version: 1.13.0.qualifier
+Bundle-Version: 1.15.0.qualifier
Bundle-Vendor: Raytheon
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
+Require-Bundle: org.eclipse.core.runtime,
net.sf.swtaddons,
com.raytheon.uf.viz.core,
com.raytheon.viz.ui,
@@ -27,20 +26,14 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.uf.viz.xy.timeheight,
com.raytheon.uf.viz.xy.varheight,
com.raytheon.uf.viz.xy.timeseries,
- com.raytheon.uf.viz.d2d.nsharp,
- gov.noaa.nws.ncep.ui.nsharp,
com.raytheon.uf.common.dataplugin,
com.raytheon.viz.grid,
- com.raytheon.uf.common.dataplugin.grid,
- com.raytheon.uf.viz.objectiveanalysis,
- com.raytheon.viz.pointdata,
- com.raytheon.uf.common.pointdata,
- com.raytheon.uf.common.comm,
- com.raytheon.uf.common.derivparam;bundle-version="1.14.0",
com.raytheon.uf.viz.datacube,
com.raytheon.uf.viz.core.grid;bundle-version="1.15.0"
Export-Package: com.raytheon.viz.volumebrowser,
com.raytheon.viz.volumebrowser.datacatalog,
+ com.raytheon.viz.volumebrowser.loader,
+ com.raytheon.viz.volumebrowser.util,
com.raytheon.viz.volumebrowser.vbui,
com.raytheon.viz.volumebrowser.xml
Import-Package: com.raytheon.uf.common.inventory.exception,
diff --git a/cave/com.raytheon.viz.volumebrowser/build.properties b/cave/com.raytheon.viz.volumebrowser/build.properties
index bb2be12e64..c1d5d29e87 100644
--- a/cave/com.raytheon.viz.volumebrowser/build.properties
+++ b/cave/com.raytheon.viz.volumebrowser/build.properties
@@ -2,5 +2,6 @@ output.com.raytheon.viz.volumebrowser.jar = bin/
bin.includes = META-INF/,\
plugin.xml,\
localization/,\
- com.raytheon.viz.volumebrowser.jar
+ com.raytheon.viz.volumebrowser.jar,\
+ schema/
source.com.raytheon.viz.volumebrowser.jar = src/
diff --git a/cave/com.raytheon.viz.volumebrowser/plugin.xml b/cave/com.raytheon.viz.volumebrowser/plugin.xml
index bc0375d068..35c066a194 100644
--- a/cave/com.raytheon.viz.volumebrowser/plugin.xml
+++ b/cave/com.raytheon.viz.volumebrowser/plugin.xml
@@ -20,6 +20,8 @@
-->
+
+
+
+
+
+
+
+
+
+ Provides a way for plugins to register a data catalog with the volume browser so that new datatypes may be laoded.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.15.0
+
+
+
+
+
+
+
+
diff --git a/cave/com.raytheon.viz.volumebrowser/schema/com.raytheon.viz.volumebrowser.productcreator.exsd b/cave/com.raytheon.viz.volumebrowser/schema/com.raytheon.viz.volumebrowser.productcreator.exsd
new file mode 100644
index 0000000000..1d78df2fe5
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/schema/com.raytheon.viz.volumebrowser.productcreator.exsd
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+ Provides a way for plugins to register a product creator with the volume browser so that new datatypes may be laoded.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.15.0
+
+
+
+
+
+
+
+
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/GridAlterBundleContributor.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/GridAlterBundleContributor.java
index ee74ac29f8..08b9002136 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/GridAlterBundleContributor.java
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/GridAlterBundleContributor.java
@@ -35,8 +35,6 @@ import com.raytheon.uf.viz.core.procedures.Bundle;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.AbstractResourceData;
import com.raytheon.uf.viz.core.rsc.ResourceList;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.D2DNSharpResourceData;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.GribNSharpResourceData;
import com.raytheon.uf.viz.xy.crosssection.rsc.CrossSectionResourceData;
import com.raytheon.uf.viz.xy.timeseries.rsc.TimeSeriesResourceData;
import com.raytheon.uf.viz.xy.varheight.rsc.VarHeightResourceData;
@@ -50,14 +48,16 @@ import com.raytheon.viz.volumebrowser.xml.VbSourceList;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------- -------- ----------- -----------------------------------------
- * Jan 04, 2010 mschenke Initial creation
- * Oct 03, 2012 1248 rferrel Change to use adapter.
- * Dec 11, 2013 2602 bsteffen Remove dead catch block.
- * Aug 19, 2014 3506 mapeters Modified getModelTitleToNameMap function
- * to still get correct VB sources after
- * splitting them into multiple files.
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- -----------------------------------------
+ * Jan 04, 2010 mschenke Initial creation
+ * Oct 03, 2012 1248 rferrel Change to use adapter.
+ * Dec 11, 2013 2602 bsteffen Remove dead catch block.
+ * Aug 19, 2014 3506 mapeters Modified getModelTitleToNameMap function
+ * to still get correct VB sources after
+ * splitting them into multiple files.
+ * Aug 03, 2015 3861 bsteffen Remove nsharp dependency.
+ *
*
*
* @author mschenke
@@ -74,11 +74,9 @@ public class GridAlterBundleContributor extends AlterBundleContributorAdapter {
if (modelTitleToNameMap == null) {
modelTitleToNameMap = new HashMap();
- for (VbSource source : VbSourceList.getInstance()
- .getAllSources()) {
+ for (VbSource source : VbSourceList.getInstance().getAllSources()) {
if (!source.getRemove()) {
- modelTitleToNameMap.put(source.getName(),
- source.getKey());
+ modelTitleToNameMap.put(source.getName(), source.getKey());
}
}
}
@@ -114,8 +112,6 @@ public class GridAlterBundleContributor extends AlterBundleContributorAdapter {
} else if (data instanceof TimeSeriesResourceData) {
((TimeSeriesResourceData) data).setSource(lookup.getInfo(
selectedString).getTitle());
- } else if (data instanceof GribNSharpResourceData) {
- ((D2DNSharpResourceData) data).setSoundingType(selectedString);
} else if (data instanceof CrossSectionResourceData) {
((CrossSectionResourceData) data).setSource(lookup.getInfo(
selectedString).getTitle());
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/AbstractDataCatalog.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/AbstractDataCatalog.java
index fd0730996f..f139e8641d 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/AbstractDataCatalog.java
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/AbstractDataCatalog.java
@@ -24,10 +24,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
-import java.util.regex.Pattern;
import com.raytheon.uf.common.dataplugin.grid.util.GridLevelTranslator;
import com.raytheon.uf.common.dataplugin.level.Level;
@@ -43,23 +40,9 @@ import com.raytheon.uf.common.style.ParamLevelMatchCriteria;
import com.raytheon.uf.common.style.StyleException;
import com.raytheon.uf.common.style.StyleManager;
import com.raytheon.uf.common.style.StyleRule;
-import com.raytheon.uf.viz.core.drawables.ResourcePair;
-import com.raytheon.uf.viz.core.grid.rsc.GridLoadProperties;
-import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.DisplayType;
-import com.raytheon.uf.viz.core.rsc.LoadProperties;
-import com.raytheon.uf.viz.core.rsc.ResourceProperties;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
-import com.raytheon.uf.viz.points.PointsDataManager;
-import com.raytheon.uf.viz.xy.crosssection.rsc.CrossSectionResourceData;
-import com.raytheon.uf.viz.xy.timeheight.rsc.TimeHeightResourceData;
-import com.raytheon.uf.viz.xy.timeseries.rsc.TimeSeriesResourceData;
-import com.raytheon.uf.viz.xy.timeseries.rsc.TimeSeriesResourceData.AxisParameter;
-import com.raytheon.uf.viz.xy.varheight.rsc.VarHeightResourceData;
-import com.raytheon.viz.awipstools.ToolsDataManager;
import com.raytheon.viz.core.graphing.util.GraphPrefsFactory;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
-import com.vividsolutions.jts.geom.Coordinate;
/**
* Abstract data catalog implementation for shared functionality between data
@@ -68,22 +51,23 @@ import com.vividsolutions.jts.geom.Coordinate;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Oct 06, 2009 2987 jelkins Initial creation
- * Oct 21, 2009 1711 bsteffen Updated Baseline and Points to use new
- * ToolsDataManager
- * Jan 30, 2012 14308 D.Friedman Use correct style for arrow types.
- * Jul 31, 2012 875 rferrel Now uses points.
- * Feb 21, 2013 1617 bsteffen fixed vb sounding point selection for
- * points which contain the word Point
- * May 03, 2013 DR14824 mgamazaychikov Added alterProductParameters method
- * Aug 20, 2013 2259 bsteffen Delete old skewt plugin.
- * Sep 06, 2013 2251 mnash Move graph prefs style type to
- * graph plugin
- * Jan 30, 2014 #2725 ekladstrup updated exception handling during move of derived
- * parameters to common
- * Sep 09, 2014 3356 njensen Remove CommunicationException
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- -------------------------------------------
+ * Oct 06, 2009 2987 jelkins Initial creation
+ * Oct 21, 2009 1711 bsteffen Updated Baseline and Points to use new
+ * ToolsDataManager
+ * Jan 30, 2012 14308 dfriedma Use correct style for arrow types.
+ * Jul 31, 2012 875 rferrel Now uses points.
+ * Feb 21, 2013 1617 bsteffen fixed vb sounding point selection for
+ * points which contain the word Point
+ * May 03, 2013 14824 mgamazay Added alterProductParameters method
+ * Aug 20, 2013 2259 bsteffen Delete old skewt plugin.
+ * Sep 06, 2013 2251 mnash Move graph prefs style type to graph plugin
+ * Jan 30, 2014 2725 ekladstr updated exception handling during move of
+ * derived parameters to common
+ * Sep 09, 2014 3356 njensen Remove CommunicationException
+ * Aug 03, 2015 3861 bsteffen Extract point/line methods to PointLineUtil
+ * Move resource creation to ProductCreators
*
*
*
@@ -95,14 +79,6 @@ public abstract class AbstractDataCatalog implements IDataCatalog {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(AbstractDataCatalog.class);
- /** key representing all latitude and longitude planes **/
- public static final String LAT_LON_KEY = "LatLon";
-
- /** key representing all point and line planes **/
- public static final String POINT_LINE_KEY = "PointLine";
-
- public static final Pattern POINT_PATTERN = Pattern.compile("^Point");
-
/**
*
* @return a list of plugin Names used for the given setting
@@ -117,175 +93,6 @@ public abstract class AbstractDataCatalog implements IDataCatalog {
return getPlugins(null)[0];
}
- @Override
- public Collection getResourcesToLoad(
- IDataCatalogEntry catalogEntry, ResourceType resourceType,
- DisplayType displayType) {
-
- ResourcePair jobRequest = new ResourcePair();
-
- AbstractRequestableResourceData resourceData = getResourceData(
- catalogEntry, resourceType);
-
- resourceData.setMetadataMap(getProductParameters(catalogEntry));
-
- LoadProperties loadProperties;
- loadProperties = getLoadProperties(catalogEntry, resourceType,
- displayType);
- loadProperties.setResourceType(resourceType);
-
- jobRequest.setResourceData(resourceData);
- jobRequest.setLoadProperties(loadProperties);
- jobRequest.setProperties(new ResourceProperties());
-
- return Arrays.asList(jobRequest);
- }
-
- /**
- *
- * @param catalogEntry
- * @param resourceType
- * @param inputResourceData
- * @return
- */
- protected AbstractRequestableResourceData getResourceData(
- IDataCatalogEntry catalogEntry, ResourceType resourceType,
- AbstractRequestableResourceData inputResourceData) {
-
- AbstractRequestableResourceData resourceData;
-
- switch (resourceType) {
-
- case CROSS_SECTION:
- CrossSectionResourceData csData = (CrossSectionResourceData) inputResourceData;
- csData.setParameter(catalogEntry.getSelectedData().getFieldsKey());
- csData.setParameterName(catalogEntry.getSelectedData()
- .getFieldsText());
- csData.setSource(catalogEntry.getSelectedData().getSourcesText());
- resourceData = csData;
- break;
- case VAR_HEIGHT:
- VarHeightResourceData vhData = (VarHeightResourceData) inputResourceData;
- vhData.setPoint(getPointCoordinate(catalogEntry));
- vhData.setParameter(catalogEntry.getSelectedData().getFieldsKey());
- vhData.setParameterName(catalogEntry.getSelectedData()
- .getFieldsText());
- vhData.setPointLetter(getPointLetter(catalogEntry));
- vhData.setSource(catalogEntry.getSelectedData().getSourcesText());
- resourceData = vhData;
- break;
- case TIME_SERIES:
- TimeSeriesResourceData tsData = (TimeSeriesResourceData) inputResourceData;
- tsData.setCoordinate(getPointCoordinate(catalogEntry));
- tsData.setPointLetter(getPointLetter(catalogEntry));
- tsData.setSource(catalogEntry.getSelectedData().getSourcesText());
-
- AxisParameter yParameter = new AxisParameter();
- yParameter.code = catalogEntry.getSelectedData().getFieldsKey();
- yParameter.name = catalogEntry.getSelectedData().getFieldsText();
-
- tsData.setYParameter(yParameter);
- tsData.setLevelKey(catalogEntry.getSelectedData().getPlanesKey());
- resourceData = tsData;
- break;
- case TIME_HEIGHT:
- TimeHeightResourceData thData = (TimeHeightResourceData) inputResourceData;
- thData.setPoint(getPointCoordinate(catalogEntry));
- thData.setParameter(catalogEntry.getSelectedData().getFieldsKey());
- thData.setParameterName(catalogEntry.getSelectedData()
- .getFieldsText());
- thData.setPointLetter(getPointLetter(catalogEntry));
- thData.setSource(catalogEntry.getSelectedData().getSourcesText());
- resourceData = thData;
- break;
- default: // PLAN_VIEW
- resourceData = null;
- break;
- }
- return resourceData;
- }
-
- /**
- * Get the resource data
- *
- * Override this method to provide an implementation for PLAN_VIEW if
- * needed.
- *
- * @param catalogEntry
- * @param resourceType
- * @return the resource data for the given catalogEntry
- */
- protected AbstractRequestableResourceData getResourceData(
- IDataCatalogEntry catalogEntry, ResourceType resourceType) {
-
- AbstractRequestableResourceData resourceData;
-
- switch (resourceType) {
-
- case CROSS_SECTION:
- resourceData = getResourceData(catalogEntry, resourceType,
- new CrossSectionResourceData());
- break;
- case VAR_HEIGHT:
- resourceData = getResourceData(catalogEntry, resourceType,
- new VarHeightResourceData());
- break;
- case TIME_SERIES:
- resourceData = getResourceData(catalogEntry, resourceType,
- new TimeSeriesResourceData());
- break;
- case TIME_HEIGHT:
- resourceData = getResourceData(catalogEntry, resourceType,
- new TimeHeightResourceData());
- break;
- default: // PLAN_VIEW
- resourceData = null;
- break;
- }
- return resourceData;
- }
-
- /**
- * Obtain the point from the given catalog entry or from directly from the
- * volume browser if in time series.
- *
- * @param catalogEntry
- * the catalogEntry for which to obtain a point
- * @return the coordinates belonging to the point. Null if there is no point
- * associated with this catalog Entry.
- */
- protected Coordinate getPointCoordinate(IDataCatalogEntry catalogEntry) {
-
- String pointLetter = getPointLetter(catalogEntry);
-
- Coordinate c = PointsDataManager.getInstance().getCoordinate(
- pointLetter);
- if (c == null) {
- c = PointsDataManager.getInstance().getCoordinate("A");
- }
- return c;
-
- }
-
- protected String getPointLetter(IDataCatalogEntry catalogEntry) {
- String pointLetter = null;
- switch (catalogEntry.getDialogSettings().getViewSelection()) {
- case TIMEHEIGHT:
- case VARVSHGT:
- case CROSSSECTION:
- case SOUNDING:
- pointLetter = POINT_PATTERN.matcher(
- catalogEntry.getSelectedData().getPlanesKey())
- .replaceFirst("");
- break;
- case TIMESERIES:
- pointLetter = catalogEntry.getDialogSettings().getPointsSelection()
- .getName();
- break;
- }
- return pointLetter;
- }
-
/*
* (non-Javadoc)
*
@@ -443,51 +250,6 @@ public abstract class AbstractDataCatalog implements IDataCatalog {
IDataCatalogEntry catalogEntry,
HashMap productParameters);
- /**
- *
- * @param dataCatalogEntry
- * @param resourceType
- * @param displayType
- * @return the load properties to use, override this method if needed
- */
- protected LoadProperties getLoadProperties(
- IDataCatalogEntry dataCatalogEntry, ResourceType resourceType,
- DisplayType displayType) {
-
- // we should really add the displayType attribute to LoadProperties
- return new GridLoadProperties(displayType);
- }
-
- public static Set getPointLineKeys() {
- Set keySet = new HashSet();
- for (String letter : PointsDataManager.getInstance().getPointNames()) {
- keySet.add("Point" + letter);
- }
- for (String letter : ToolsDataManager.getInstance().getBaselineNames()) {
- keySet.add("Line" + letter);
- }
- return keySet;
- }
-
- /**
- * @param plane
- * @return true if the given plane is a line or point
- */
- protected boolean isLineOrPoint(String plane) {
- return (isLatLon(plane) || isPointLine(plane));
- }
-
- protected boolean isLatLon(String plane) {
- return ((plane != null) && (plane.startsWith("Lat")
- || plane.startsWith("Lon") || plane.equals("LATS") || plane
- .equals("LONS")));
- }
-
- protected boolean isPointLine(String plane) {
- return ((plane != null) && (plane.startsWith("Line") || plane
- .startsWith("Point")));
- }
-
/**
* Alter product parameters
*
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/DataCatalogManager.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/DataCatalogManager.java
index ca0b08de36..778fa325b1 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/DataCatalogManager.java
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/DataCatalogManager.java
@@ -22,8 +22,14 @@ package com.raytheon.viz.volumebrowser.datacatalog;
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.ui.progress.UIJob;
@@ -42,11 +48,12 @@ import com.raytheon.viz.volumebrowser.vbui.VbUtil;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * May 27, 2009 2161 lvenable Initial creation
- * Aug 19, 2013 2269 bsteffen Fix MDCRS data and switch acars to use
- * nsharp.
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * May 27, 2009 2161 lvenable Initial creation
+ * Aug 19, 2013 2269 bsteffen Fix MDCRS data and switch acars to use
+ * nsharp.
+ * Aug 03, 2015 3861 bsteffen Load catalogs from extension point
*
*
*
@@ -57,6 +64,8 @@ public class DataCatalogManager {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(DataCatalogManager.class);
+ private static final String EXTENSION_POINT_ID = "com.raytheon.viz.volumebrowser.datacatalog";
+
private static DataCatalogManager dataCatalogManager;
/**
@@ -96,7 +105,7 @@ public class DataCatalogManager {
request.cancel();
}
- };
+ }
private static class MenuUpdateJob extends UIJob {
@@ -168,13 +177,33 @@ public class DataCatalogManager {
* Volume Browser's product table.
*/
private DataCatalogManager() {
- // TODO these should be read from an extension point.
catalogs = new ArrayList();
- catalogs.add(new GridDataCatalog());
- catalogs.add(new DmdDataCatalog());
- catalogs.add(new PointDataCatalog());
- catalogs.add(new ModelSoundingCatalog());
- catalogs.add(new VwpDataCatalog());
+ loadFromExtensionPoint();
+
+ }
+
+ private void loadFromExtensionPoint() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_POINT_ID);
+ IExtension[] extensions = point.getExtensions();
+
+ for (IExtension ext : extensions) {
+ IConfigurationElement[] config = ext.getConfigurationElements();
+
+ for (IConfigurationElement cfg : config) {
+ try {
+ IDataCatalog catalog = (IDataCatalog) cfg
+ .createExecutableExtension("catalogClass");
+ catalogs.add(catalog);
+
+ } catch (CoreException e) {
+ statusHandler
+ .handle(Priority.PROBLEM,
+ "Unable to load a Volume Browser data catalog, some products will not load.",
+ e);
+ }
+ }
+ }
}
public void addDataCatalog(IDataCatalog catalog) {
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/IDataCatalog.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/IDataCatalog.java
index 9c62e3c539..0d7acfc496 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/IDataCatalog.java
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/datacatalog/IDataCatalog.java
@@ -19,14 +19,11 @@
**/
package com.raytheon.viz.volumebrowser.datacatalog;
-import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
-import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.rsc.DisplayType;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
import com.raytheon.viz.volumebrowser.vbui.SelectedData;
/**
@@ -37,9 +34,10 @@ import com.raytheon.viz.volumebrowser.vbui.SelectedData;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * May 27, 2009 #2161 lvenable Initial creation
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * May 27, 2009 2161 lvenable Initial creation
+ * Aug 03, 2015 3861 bsteffen Move resource creation to ProductCreators
*
*
*
@@ -90,22 +88,6 @@ public interface IDataCatalog {
*/
void getAvailableData(AvailableDataRequest request);
- /**
- * Get the Request object for a single catalog Entry
- *
- * @param catalogEntry
- * the catalog entry for which to obtain a request
- * @param resourceType
- * the type of request
- * @param displayType
- * display an image, or contour, etc
- * @return a request that can be used along with the editor returned from
- * the getEditor() method to request a catalogEntry to be fetched,
- * loaded, and displayed on the display.
- */
- Collection getResourcesToLoad(IDataCatalogEntry catalogEntry,
- ResourceType resourceType, DisplayType displayType);
-
/**
* Get all possible sources for which this catalog can provide data
*
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/AbstractMapProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/AbstractMapProductCreator.java
new file mode 100644
index 0000000000..22ffe24451
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/AbstractMapProductCreator.java
@@ -0,0 +1,84 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+
+import com.raytheon.uf.viz.core.DescriptorMap;
+import com.raytheon.uf.viz.core.exception.VizException;
+import com.raytheon.uf.viz.core.grid.rsc.GridLoadProperties;
+import com.raytheon.uf.viz.core.map.MapDescriptor;
+import com.raytheon.uf.viz.core.maps.actions.NewMapEditor;
+import com.raytheon.uf.viz.core.maps.display.MapRenderableDisplay;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.core.rsc.LoadProperties;
+import com.raytheon.viz.ui.EditorUtil;
+import com.raytheon.viz.ui.editor.AbstractEditor;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+
+/**
+ *
+ * Contains logic for creating a {@link MapRenderableDisplay} appropriate for
+ * the current perspective.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Extracted from ProductTableComp
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public abstract class AbstractMapProductCreator extends AbstractProductCreator {
+
+ @Override
+ protected MapRenderableDisplay createNewRenderableDisplay(VolumeBrowserDialogSettings dialogSettings, SelectedData selectedData) {
+ String editorId = DescriptorMap.getEditorId(MapDescriptor.class
+ .getName());
+
+ IEditorPart editorPart = EditorUtil.findEditor(editorId);
+ try {
+ if (editorPart == null) {
+ new NewMapEditor().execute(null);
+ editorPart = EditorUtil.findEditor(editorId);
+ }
+ AbstractEditor editor = (AbstractEditor) editorPart;
+ MapRenderableDisplay display = (MapRenderableDisplay) editor
+ .getActiveDisplayPane().getRenderableDisplay()
+ .createNewDisplay();
+ display.setDescriptor(new MapDescriptor());
+ return display;
+ } catch (ExecutionException | VizException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ protected LoadProperties createNewLoadProperties(DisplayType displayType) {
+ return new GridLoadProperties(displayType);
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/AbstractProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/AbstractProductCreator.java
new file mode 100644
index 0000000000..e65e85bbf5
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/AbstractProductCreator.java
@@ -0,0 +1,94 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.core.rsc.LoadProperties;
+import com.raytheon.uf.viz.core.rsc.ResourceProperties;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+
+/**
+ *
+ * Base implementation of {@link ProductCreator} that breaks the creation into
+ * distinct tasks that can be easily implemented or overridden.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public abstract class AbstractProductCreator implements ProductCreator {
+
+ @Override
+ public AbstractRenderableDisplay loadProduct(IDataCatalog dataCatalog,
+ IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ AbstractRenderableDisplay display = createNewRenderableDisplay(
+ catalogEntry.getDialogSettings(),
+ catalogEntry.getSelectedData());
+ Collection resources = getResourcesToLoad(dataCatalog,
+ catalogEntry, displayType);
+ display.getDescriptor().getResourceList().addAll(resources);
+ return display;
+ }
+
+ protected Collection getResourcesToLoad(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ AbstractRequestableResourceData resourceData = createNewResourceData(
+ dataCatalog, catalogEntry, displayType);
+ resourceData.setMetadataMap(dataCatalog
+ .getProductParameters(catalogEntry));
+
+ ResourcePair pair = new ResourcePair();
+ pair.setResourceData(resourceData);
+ pair.setLoadProperties(createNewLoadProperties(displayType));
+ pair.setProperties(new ResourceProperties());
+ return Arrays.asList(pair);
+ }
+
+ protected LoadProperties createNewLoadProperties(DisplayType displayType) {
+ return new LoadProperties();
+ }
+
+ protected abstract AbstractRenderableDisplay createNewRenderableDisplay(
+ VolumeBrowserDialogSettings dialogSettings,
+ SelectedData selectedData);
+
+ protected abstract AbstractRequestableResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType);
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/CrossSectionProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/CrossSectionProductCreator.java
new file mode 100644
index 0000000000..7d1eff6a54
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/CrossSectionProductCreator.java
@@ -0,0 +1,143 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import java.awt.Rectangle;
+import java.util.Arrays;
+
+import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
+import com.raytheon.uf.viz.core.grid.rsc.GridLoadProperties;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.core.rsc.LoadProperties;
+import com.raytheon.uf.viz.xy.crosssection.display.CrossSectionDescriptor;
+import com.raytheon.uf.viz.xy.crosssection.display.CrossSectionRenderableDisplay;
+import com.raytheon.uf.viz.xy.crosssection.rsc.CrossSectionResourceData;
+import com.raytheon.viz.awipstools.ToolsDataManager;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.CrossSectionUtil;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.SpaceTimeMenu;
+import com.raytheon.viz.volumebrowser.vbui.VbUtil;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.LineString;
+
+/**
+ *
+ * Creates a {@link CrossSectionRenderableDisplay} containing a
+ * {@link CrossSectionResourceData}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class CrossSectionProductCreator extends AbstractProductCreator {
+
+ @Override
+ protected AbstractRenderableDisplay createNewRenderableDisplay(
+ VolumeBrowserDialogSettings dialogSettings,
+ SelectedData selectedData) {
+ CrossSectionRenderableDisplay display = new CrossSectionRenderableDisplay();
+ CrossSectionDescriptor descriptor = display.getDescriptor();
+ descriptor.setRenderableDisplay(display);
+
+ SpaceTimeMenu currentSpaceTime = dialogSettings.getSpaceTimeSelection();
+ String planesKey = selectedData.getPlanesKey();
+ if (currentSpaceTime == SpaceTimeMenu.TIME) {
+ /*
+ * The Selected Plane in Time setting will be either a Baseline or a
+ * Lat/Lon Line
+ */
+ Rectangle coverageRectangle = VbUtil.getMapCoverageRectangle();
+ LineString line = null;
+
+ if (planesKey.startsWith("Lon")) {
+ double x = Double.parseDouble(planesKey.substring(3));
+ Coordinate start = new Coordinate(x,
+ coverageRectangle.getMaxY());
+ Coordinate end = new Coordinate(x, coverageRectangle.getMinY());
+ line = new GeometryFactory().createLineString(new Coordinate[] {
+ start, end });
+ } else if (planesKey.startsWith("Lat")) {
+ double y = Double.parseDouble(planesKey.substring(3));
+ Coordinate start = new Coordinate(coverageRectangle.getMinX(),
+ y);
+ Coordinate end = new Coordinate(coverageRectangle.getMaxX(), y);
+ line = new GeometryFactory().createLineString(new Coordinate[] {
+ start, end });
+
+ } else if (planesKey.startsWith("Line")) {
+ ToolsDataManager dataManager = ToolsDataManager.getInstance();
+ line = dataManager.getBaseline(planesKey.substring(4));
+ /* default to Baseline A if all else fails */
+ if (line == null) {
+ line = dataManager.getBaseline("A");
+ }
+ } else {
+ throw new RuntimeException("Invalid line has been selected: "
+ + planesKey);
+ }
+
+ /* set the line at which the results are displayed */
+ descriptor.setLines(Arrays.asList(line));
+ descriptor.setLineID(selectedData.getPlanesText());
+ } else if (currentSpaceTime == SpaceTimeMenu.SPACE) {
+ System.out
+ .println("Loading a Cross Section Space Resource from the Volume Browser.");
+ if (planesKey.equals("LATS")) {
+ descriptor.setLines(CrossSectionUtil.getAllLats());
+ descriptor.setLineID("AllLAT");
+ } else if (planesKey.equals("LONS")) {
+ descriptor.setLines(CrossSectionUtil.getAllLons());
+ descriptor.setLineID("AllLON");
+ }
+ }
+ descriptor.setHeightScale(dialogSettings.getHeightScaleSelection());
+ return display;
+ }
+
+ @Override
+ protected CrossSectionResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ SelectedData selectedData = catalogEntry.getSelectedData();
+ CrossSectionResourceData resourceData = new CrossSectionResourceData();
+ resourceData.setParameter(selectedData.getFieldsKey());
+ resourceData.setParameterName(selectedData.getFieldsText());
+ resourceData.setSource(selectedData.getSourcesText());
+ return resourceData;
+ }
+
+ @Override
+ protected LoadProperties createNewLoadProperties(DisplayType displayType) {
+ return new GridLoadProperties(displayType);
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductCreator.java
new file mode 100644
index 0000000000..5faea18762
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductCreator.java
@@ -0,0 +1,49 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+
+/**
+ *
+ * Interface for classes which know how to load a specific product from the
+ * volume browser. Instances of this class should be registered with the
+ * {@link ProductCreatorManager} so they will be used to create products.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public interface ProductCreator {
+
+ public AbstractRenderableDisplay loadProduct(IDataCatalog dataCatalog,
+ IDataCatalogEntry catalogEntry, DisplayType displayType);
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductCreatorManager.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductCreatorManager.java
new file mode 100644
index 0000000000..4eadf40209
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductCreatorManager.java
@@ -0,0 +1,167 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+import com.raytheon.uf.common.status.IUFStatusHandler;
+import com.raytheon.uf.common.status.UFStatus;
+import com.raytheon.uf.common.status.UFStatus.Priority;
+
+/**
+ *
+ * Class for managing registered {@link ProductCreator}s.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class ProductCreatorManager {
+
+ private static final transient IUFStatusHandler statusHandler = UFStatus
+ .getHandler(ProductCreatorManager.class);
+
+ private static final String EXTENSION_POINT_ID = "com.raytheon.viz.volumebrowser.productcreator";
+
+ private static final ProductCreatorManager instance = new ProductCreatorManager();
+
+ private final Map creators = new HashMap<>();
+
+ private ProductCreatorManager() {
+ loadFromExtensionPoint();
+ }
+
+ private void loadFromExtensionPoint() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_POINT_ID);
+ IExtension[] extensions = point.getExtensions();
+
+ for (IExtension ext : extensions) {
+ IConfigurationElement[] config = ext.getConfigurationElements();
+
+ for (IConfigurationElement cfg : config) {
+ String resourceType = cfg.getAttribute("resourceType");
+ String plugins = cfg.getAttribute("plugins");
+ try {
+ ProductCreator creator = (ProductCreator) cfg
+ .createExecutableExtension("creatorClass");
+ for (String plugin : plugins.split(",")) {
+ addCreator(plugin, resourceType, creator);
+ }
+ } catch (CoreException e) {
+ statusHandler
+ .handle(Priority.PROBLEM,
+ "Unable to load a Volume Browser product creator, some products will not load.",
+ e);
+ }
+ }
+ }
+ }
+
+ public void addCreator(String pluginName, String resourceType,
+ ProductCreator creator) {
+ Key key = new Key(pluginName, resourceType);
+ synchronized (creators) {
+ creators.put(key, creator);
+ }
+ }
+
+ public ProductCreator getCreator(String pluginName, String resourceType) {
+ Key key = new Key(pluginName, resourceType);
+ synchronized (creators) {
+ return creators.get(key);
+ }
+ }
+
+ public static ProductCreatorManager getInstance() {
+ return instance;
+ }
+
+ private static class Key {
+
+ public final String pluginName;
+
+ public final String resourceType;
+
+ private final int hashCode;
+
+ public Key(String pluginName, String resourceType) {
+ this.pluginName = pluginName;
+ this.resourceType = resourceType;
+
+ int prime = 31;
+ int hashCode = 1;
+ hashCode = prime * hashCode
+ + ((pluginName == null) ? 0 : pluginName.hashCode());
+ hashCode = prime * hashCode
+ + ((resourceType == null) ? 0 : resourceType.hashCode());
+ this.hashCode = hashCode;
+ }
+
+ @Override
+ public int hashCode() {
+ return hashCode;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Key other = (Key) obj;
+ if (pluginName == null) {
+ if (other.pluginName != null)
+ return false;
+ } else if (!pluginName.equals(other.pluginName))
+ return false;
+ if (resourceType == null) {
+ if (other.resourceType != null)
+ return false;
+ } else if (!resourceType.equals(other.resourceType))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "Key [pluginName=" + pluginName + ", resourceType="
+ + resourceType + "]";
+ }
+ }
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductLoader.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductLoader.java
new file mode 100644
index 0000000000..8072739f15
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/ProductLoader.java
@@ -0,0 +1,198 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.ui.IEditorPart;
+
+import com.raytheon.uf.common.dataplugin.PluginDataObject;
+import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
+import com.raytheon.uf.viz.core.DescriptorMap;
+import com.raytheon.uf.viz.core.IDisplayPane;
+import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
+import com.raytheon.uf.viz.core.drawables.ResourcePair;
+import com.raytheon.uf.viz.core.procedures.Bundle;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.core.rsc.ResourceType;
+import com.raytheon.viz.core.rsc.ICombinedResourceData;
+import com.raytheon.viz.core.rsc.ICombinedResourceData.CombineOperation;
+import com.raytheon.viz.ui.BundleProductLoader;
+import com.raytheon.viz.ui.EditorUtil;
+import com.raytheon.viz.ui.UiUtil;
+import com.raytheon.viz.ui.editor.AbstractEditor;
+import com.raytheon.viz.ui.editor.IMultiPaneEditor;
+import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogManager;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.vbui.ProductTableComp;
+
+/**
+ *
+ * This class can be used to accumulate multiple products from the
+ * {@link ProductTableComp} for loading. Each product is added using
+ * {@link #addProduct(IDataCatalogEntry, DisplayType)} and when all products
+ * have beens elected then they can be loaded with either {@link #load()} or
+ * {@link #loadDifference()}. Instances of this class are not intended for
+ * reuse.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class ProductLoader {
+
+ private List displaysToLoad = new ArrayList<>();
+
+ public void addProduct(IDataCatalogEntry catalogEntry,
+ DisplayType displayType) {
+ IDataCatalog catalog = DataCatalogManager.getDataCatalogManager()
+ .getDataCatalog(catalogEntry.getSelectedData());
+ ResourceType resourceType = catalogEntry.getDialogSettings()
+ .getViewSelection().getResourceType();
+ HashMap metadataMap = catalog
+ .getProductParameters(catalogEntry);
+ String pluginName = metadataMap.get(PluginDataObject.PLUGIN_NAME_ID)
+ .getConstraintValue();
+ ProductCreator loader = ProductCreatorManager.getInstance().getCreator(
+ pluginName, resourceType.toString().toLowerCase());
+ if (loader == null) {
+ throw new RuntimeException("Unable to load product for plugin "
+ + pluginName + " of type " + resourceType);
+ }
+ AbstractRenderableDisplay display = loader.loadProduct(catalog,
+ catalogEntry, displayType);
+ if (display != null) {
+ displaysToLoad.add(display);
+ }
+ }
+
+ public void loadDifference() {
+ if (displaysToLoad.size() < 2) {
+ throw new RuntimeException(
+ "Not enough resources selected to difference");
+ } else if (displaysToLoad.size() > 2) {
+ throw new RuntimeException(
+ "Too many resources selected to difference");
+ }
+ AbstractRenderableDisplay display1 = displaysToLoad.get(0);
+ AbstractRenderableDisplay display2 = displaysToLoad.get(1);
+ displaysToLoad.clear();
+ if (!display1.getDescriptor().isCompatible(display2.getDescriptor())) {
+ throw new RuntimeException(
+ "Difference failed because of incompatible resources.");
+ }
+ Iterator it1 = display1.getDescriptor().getResourceList()
+ .iterator();
+ Iterator it2 = display2.getDescriptor().getResourceList()
+ .iterator();
+ while (it1.hasNext() && it2.hasNext()) {
+ ResourcePair pair1 = it1.next();
+ ResourcePair pair2 = it2.next();
+ if (pair1.getResourceData() instanceof ICombinedResourceData) {
+ ICombinedResourceData first = (ICombinedResourceData) pair1
+ .getResourceData();
+ first.setSecondaryData(pair2.getResourceData());
+ first.setCombineOperation(CombineOperation.DIFFERENCE);
+ }
+ }
+ System.out
+ .println("Loading a Difference Product from the Volume Browser.");
+ load(display1);
+ }
+
+ public void load() {
+ if (displaysToLoad.isEmpty()) {
+ return;
+ }
+ while (!displaysToLoad.isEmpty()) {
+ AbstractRenderableDisplay display = displaysToLoad.get(0);
+ displaysToLoad.remove(0);
+ Iterator it = displaysToLoad.iterator();
+ while (it.hasNext()) {
+ AbstractRenderableDisplay next = it.next();
+ if (display.getDescriptor().isCompatible(next.getDescriptor())) {
+ display.getDescriptor().getResourceList()
+ .addAll(next.getDescriptor().getResourceList());
+ it.remove();
+ }
+ }
+ load(display);
+ }
+ }
+
+ protected void load(AbstractRenderableDisplay display) {
+ String editorId = DescriptorMap.getEditorId(display.getDescriptor()
+ .getClass().getName());
+
+ IEditorPart activeEditor = EditorUtil.getActiveEditor();
+ AbstractEditor editor = UiUtil.createOrOpenEditor(editorId,
+ display.cloneDisplay());
+
+ if (editor != null) {
+ if (activeEditor != null && editor != activeEditor
+ && activeEditor instanceof IMultiPaneEditor
+ && editor instanceof IMultiPaneEditor) {
+ IMultiPaneEditor activeMpe = (IMultiPaneEditor) activeEditor;
+ IMultiPaneEditor mpe = (IMultiPaneEditor) editor;
+
+ if (mpe.getNumberofPanes() < activeMpe.getNumberofPanes()) {
+ for (int i = mpe.getNumberofPanes(); i < activeMpe
+ .getNumberofPanes(); ++i) {
+ mpe.addPane(display.createNewDisplay());
+ }
+
+ IDisplayPane selectedPane = activeMpe
+ .getSelectedPane(IMultiPaneEditor.LOAD_ACTION);
+ if (selectedPane != null) {
+ IDisplayPane[] allPanes = activeMpe.getDisplayPanes();
+ for (int i = 0; i < allPanes.length; ++i) {
+ if (selectedPane == allPanes[i]) {
+ IDisplayPane newSelectedPane = mpe
+ .getDisplayPanes()[i];
+ mpe.setSelectedPane(
+ IMultiPaneEditor.LOAD_ACTION,
+ newSelectedPane);
+ break;
+ }
+ }
+ }
+ }
+ }
+ Bundle b = new Bundle();
+ b.setDisplays(new AbstractRenderableDisplay[] { display });
+ Job j = new BundleProductLoader(editor, b);
+ j.schedule();
+ }
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/TimeHeightProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/TimeHeightProductCreator.java
new file mode 100644
index 0000000000..28e0b3f4ee
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/TimeHeightProductCreator.java
@@ -0,0 +1,91 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import com.raytheon.uf.viz.core.grid.rsc.GridLoadProperties;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.core.rsc.LoadProperties;
+import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightDescriptor;
+import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightDescriptor.TimeDirection;
+import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightRenderableDisplay;
+import com.raytheon.uf.viz.xy.timeheight.rsc.TimeHeightResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.LeftRightMenu;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+
+/**
+ *
+ * Creates a {@link TimeHeightRenderableDisplay} containing a
+ * {@link TimeHeightResourceData}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class TimeHeightProductCreator extends AbstractProductCreator {
+
+ @Override
+ protected TimeHeightRenderableDisplay createNewRenderableDisplay(
+ VolumeBrowserDialogSettings dialogSettings,
+ SelectedData selectedData) {
+ TimeHeightRenderableDisplay display = new TimeHeightRenderableDisplay();
+ TimeHeightDescriptor descriptor = display.getDescriptor();
+ descriptor.setRenderableDisplay(display);
+ descriptor.setHeightScale(dialogSettings.getHeightScaleSelection());
+ LeftRightMenu leftRightMenu = dialogSettings
+ .getTimeDirectionSelection();
+ if (leftRightMenu == LeftRightMenu.LEFT) {
+ descriptor.setTimeDirection(TimeDirection.RIGHT_TO_LEFT);
+ } else {
+ descriptor.setTimeDirection(TimeDirection.LEFT_TO_RIGHT);
+ }
+ return display;
+ }
+
+ @Override
+ protected TimeHeightResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ SelectedData selectedData = catalogEntry.getSelectedData();
+ TimeHeightResourceData resourceData = new TimeHeightResourceData();
+ resourceData.setPoint(PointLineUtil.getPointCoordinate(catalogEntry));
+ resourceData.setParameter(selectedData.getFieldsKey());
+ resourceData.setParameterName(selectedData.getFieldsText());
+ resourceData.setPointLetter(PointLineUtil.getPointLetter(catalogEntry));
+ resourceData.setSource(selectedData.getSourcesText());
+ return resourceData;
+ }
+
+ @Override
+ protected LoadProperties createNewLoadProperties(DisplayType displayType) {
+ return new GridLoadProperties(displayType);
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/TimeSeriesProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/TimeSeriesProductCreator.java
new file mode 100644
index 0000000000..da65365ea7
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/TimeSeriesProductCreator.java
@@ -0,0 +1,74 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.xy.timeseries.display.TimeSeriesRenderableDisplay;
+import com.raytheon.uf.viz.xy.timeseries.rsc.TimeSeriesResourceData;
+import com.raytheon.uf.viz.xy.timeseries.rsc.TimeSeriesResourceData.AxisParameter;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+
+/**
+ *
+ * Creates a {@link TimeSeriesRenderableDisplay} containing a
+ * {@link TimeSeriesResourceData}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class TimeSeriesProductCreator extends AbstractProductCreator{
+
+ @Override
+ protected TimeSeriesRenderableDisplay createNewRenderableDisplay(VolumeBrowserDialogSettings dialogSettings, SelectedData selectedData) {
+ return new TimeSeriesRenderableDisplay();
+ }
+
+ @Override
+ protected TimeSeriesResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ SelectedData selectedData = catalogEntry.getSelectedData();
+ TimeSeriesResourceData resourceData = new TimeSeriesResourceData();
+ resourceData.setCoordinate(PointLineUtil.getPointCoordinate(catalogEntry));
+ resourceData.setPointLetter(PointLineUtil.getPointLetter(catalogEntry));
+ resourceData.setSource(selectedData.getSourcesText());
+
+ AxisParameter yParameter = new AxisParameter();
+ yParameter.code = selectedData.getFieldsKey();
+ yParameter.name = selectedData.getFieldsText();
+
+ resourceData.setYParameter(yParameter);
+ resourceData.setLevelKey(selectedData.getPlanesKey());
+ return resourceData;
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/VarHeightHodoProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/VarHeightHodoProductCreator.java
new file mode 100644
index 0000000000..11561bf2fa
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/VarHeightHodoProductCreator.java
@@ -0,0 +1,76 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.xy.varheight.display.VarHeightRenderableDisplay;
+import com.raytheon.uf.viz.xy.varheight.hodo.VarHeightHodoDescriptor;
+import com.raytheon.uf.viz.xy.varheight.rsc.VarHeightResourceData;
+import com.raytheon.viz.core.slice.request.HeightScales;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+
+/**
+ *
+ * Creates a {@link VarHeightRenderableDisplay} containing a
+ * {@link VarHeightHodoDescriptor} with a {@link VarHeightResourceData}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class VarHeightHodoProductCreator extends AbstractProductCreator {
+
+ @Override
+ protected VarHeightRenderableDisplay createNewRenderableDisplay(
+ VolumeBrowserDialogSettings dialogSettings, SelectedData selectedData) {
+ VarHeightRenderableDisplay display = new VarHeightRenderableDisplay();
+ VarHeightHodoDescriptor descriptor = new VarHeightHodoDescriptor();
+ display.setDescriptor(descriptor);
+ descriptor.setRenderableDisplay(display);
+ descriptor.setHeightScale(HeightScales.fromName("Log 1050-150"));
+ return display;
+ }
+
+ @Override
+ protected AbstractRequestableResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ VarHeightResourceData resourceData = new VarHeightResourceData();
+ resourceData.setPoint(PointLineUtil.getPointCoordinate(catalogEntry));
+ resourceData.setParameter("Wind");
+ resourceData.setParameterName("Wind");
+ resourceData.setPointLetter(PointLineUtil.getPointLetter(catalogEntry));
+ resourceData.setSource(catalogEntry.getSelectedData().getSourcesText());
+ return resourceData;
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/VarHeightProductCreator.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/VarHeightProductCreator.java
new file mode 100644
index 0000000000..3b29dc9c1b
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/loader/VarHeightProductCreator.java
@@ -0,0 +1,72 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.loader;
+
+import com.raytheon.uf.viz.core.rsc.DisplayType;
+import com.raytheon.uf.viz.xy.varheight.display.VarHeightDescriptor;
+import com.raytheon.uf.viz.xy.varheight.display.VarHeightRenderableDisplay;
+import com.raytheon.uf.viz.xy.varheight.rsc.VarHeightResourceData;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.raytheon.viz.volumebrowser.util.PointLineUtil;
+import com.raytheon.viz.volumebrowser.vbui.SelectedData;
+import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserDialogSettings;
+
+/**
+ *
+ * Creates a {@link VarHeightRenderableDisplay} containing a
+ * {@link VarHeightDescriptor} with a {@link VarHeightResourceData}.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Initial Creation
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class VarHeightProductCreator extends AbstractProductCreator {
+
+ @Override
+ protected VarHeightRenderableDisplay createNewRenderableDisplay(VolumeBrowserDialogSettings dialogSettings, SelectedData selectedData) {
+ VarHeightRenderableDisplay display = new VarHeightRenderableDisplay();
+ VarHeightDescriptor descriptor = display.getDescriptor();
+ descriptor.setRenderableDisplay(display);
+ descriptor.setHeightScale(dialogSettings.getHeightScaleSelection());
+ return display;
+ }
+
+ @Override
+ protected VarHeightResourceData createNewResourceData(
+ IDataCatalog dataCatalog, IDataCatalogEntry catalogEntry, DisplayType displayType) {
+ VarHeightResourceData resourceDaata = new VarHeightResourceData();
+ resourceDaata.setPoint(PointLineUtil.getPointCoordinate(catalogEntry));
+ resourceDaata.setParameter(catalogEntry.getSelectedData().getFieldsKey());
+ resourceDaata.setParameterName(catalogEntry.getSelectedData().getFieldsText());
+ resourceDaata.setPointLetter(PointLineUtil.getPointLetter(catalogEntry));
+ resourceDaata.setSource(catalogEntry.getSelectedData().getSourcesText());
+ return resourceDaata;
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/util/PointLineUtil.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/util/PointLineUtil.java
new file mode 100644
index 0000000000..8341835757
--- /dev/null
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/util/PointLineUtil.java
@@ -0,0 +1,121 @@
+/**
+ * This software was developed and / or modified by Raytheon Company,
+ * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
+ *
+ * U.S. EXPORT CONTROLLED TECHNICAL DATA
+ * This software product contains export-restricted data whose
+ * export/transfer/disclosure is restricted by U.S. law. Dissemination
+ * to non-U.S. persons whether in the United States or abroad requires
+ * an export license or other authorization.
+ *
+ * Contractor Name: Raytheon Company
+ * Contractor Address: 6825 Pine Street, Suite 340
+ * Mail Stop B8
+ * Omaha, NE 68106
+ * 402.291.0100
+ *
+ * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
+ * further licensing information.
+ **/
+package com.raytheon.viz.volumebrowser.util;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+import com.raytheon.uf.viz.points.PointsDataManager;
+import com.raytheon.viz.awipstools.ToolsDataManager;
+import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
+import com.vividsolutions.jts.geom.Coordinate;
+
+/**
+ *
+ * Static convenience methods for dealing with the points and lines when loading
+ * data from the volume browser.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Aug 03, 2015 3861 bsteffen Extracted from AbstractDataCatalog
+ *
+ *
+ *
+ * @author bsteffen
+ */
+public class PointLineUtil {
+
+ /** key representing all latitude and longitude planes **/
+ public static final String LAT_LON_KEY = "LatLon";
+
+ /** key representing all point and line planes **/
+ public static final String POINT_LINE_KEY = "PointLine";
+
+ public static final Pattern POINT_PATTERN = Pattern.compile("^Point");
+
+ public static Set getPointLineKeys() {
+ Set keySet = new HashSet();
+ for (String letter : PointsDataManager.getInstance().getPointNames()) {
+ keySet.add("Point" + letter);
+ }
+ for (String letter : ToolsDataManager.getInstance().getBaselineNames()) {
+ keySet.add("Line" + letter);
+ }
+ return keySet;
+ }
+
+ public static boolean isLatLon(String plane) {
+ return ((plane != null) && (plane.startsWith("Lat")
+ || plane.startsWith("Lon") || plane.equals("LATS") || plane
+ .equals("LONS")));
+ }
+
+ public static boolean isPointLine(String plane) {
+ return ((plane != null) && (plane.startsWith("Line") || plane
+ .startsWith("Point")));
+ }
+
+ /**
+ * Obtain the point from the given catalog entry or from directly from the
+ * volume browser if in time series.
+ *
+ * @param catalogEntry
+ * the catalogEntry for which to obtain a point
+ * @return the coordinates belonging to the point. Null if there is no point
+ * associated with this catalog Entry.
+ */
+ public static Coordinate getPointCoordinate(IDataCatalogEntry catalogEntry) {
+
+ String pointLetter = getPointLetter(catalogEntry);
+
+ Coordinate c = PointsDataManager.getInstance().getCoordinate(
+ pointLetter);
+ if (c == null) {
+ c = PointsDataManager.getInstance().getCoordinate("A");
+ }
+ return c;
+
+ }
+
+ public static String getPointLetter(IDataCatalogEntry catalogEntry) {
+ String pointLetter = null;
+ switch (catalogEntry.getDialogSettings().getViewSelection()) {
+ case TIMEHEIGHT:
+ case VARVSHGT:
+ case CROSSSECTION:
+ case SOUNDING:
+ pointLetter = POINT_PATTERN.matcher(
+ catalogEntry.getSelectedData().getPlanesKey())
+ .replaceFirst("");
+ break;
+ case TIMESERIES:
+ pointLetter = catalogEntry.getDialogSettings().getPointsSelection()
+ .getName();
+ break;
+ }
+ return pointLetter;
+ }
+
+}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableComp.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableComp.java
index 2703595f6c..762e8e26d9 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableComp.java
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableComp.java
@@ -19,9 +19,6 @@
**/
package com.raytheon.viz.volumebrowser.vbui;
-import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDescriptor;
-import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDisplay;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -30,7 +27,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -59,49 +55,14 @@ import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.IEditorPart;
-import com.raytheon.uf.viz.core.DescriptorMap;
-import com.raytheon.uf.viz.core.IDisplayPane;
import com.raytheon.uf.viz.core.VizApp;
-import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
-import com.raytheon.uf.viz.core.drawables.ResourcePair;
-import com.raytheon.uf.viz.core.exception.VizException;
-import com.raytheon.uf.viz.core.map.MapDescriptor;
-import com.raytheon.uf.viz.core.maps.actions.NewMapEditor;
-import com.raytheon.uf.viz.core.procedures.Bundle;
import com.raytheon.uf.viz.core.rsc.DisplayType;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
-import com.raytheon.uf.viz.d2d.nsharp.rsc.D2DNSharpResourceData;
-import com.raytheon.uf.viz.xy.crosssection.display.CrossSectionDescriptor;
-import com.raytheon.uf.viz.xy.crosssection.display.CrossSectionRenderableDisplay;
-import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightDescriptor;
-import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightDescriptor.TimeDirection;
-import com.raytheon.uf.viz.xy.timeheight.display.TimeHeightRenderableDisplay;
-import com.raytheon.uf.viz.xy.timeseries.display.TimeSeriesRenderableDisplay;
-import com.raytheon.uf.viz.xy.varheight.display.VarHeightDescriptor;
-import com.raytheon.uf.viz.xy.varheight.display.VarHeightRenderableDisplay;
-import com.raytheon.uf.viz.xy.varheight.hodo.VarHeightHodoDescriptor;
-import com.raytheon.uf.viz.xy.varheight.rsc.VarHeightResourceData;
-import com.raytheon.viz.awipstools.ToolsDataManager;
-import com.raytheon.viz.core.rsc.ICombinedResourceData;
-import com.raytheon.viz.core.rsc.ICombinedResourceData.CombineOperation;
-import com.raytheon.viz.core.slice.request.HeightScales;
-import com.raytheon.viz.ui.BundleProductLoader;
-import com.raytheon.viz.ui.EditorUtil;
-import com.raytheon.viz.ui.UiUtil;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
-import com.raytheon.viz.ui.editor.AbstractEditor;
-import com.raytheon.viz.ui.editor.IMultiPaneEditor;
import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogManager;
import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
-import com.raytheon.viz.volumebrowser.util.CrossSectionUtil;
-import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.LeftRightMenu;
-import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.SpaceTimeMenu;
+import com.raytheon.viz.volumebrowser.loader.ProductLoader;
import com.raytheon.viz.volumebrowser.vbui.VBMenuBarItemsMgr.ViewMenu;
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.LineString;
/**
*
@@ -110,17 +71,20 @@ import com.vividsolutions.jts.geom.LineString;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Jun 08, 2009 2161 lvenable Initial creation
- * Mar 27, 2012 14506 Qinglu Lin For cross section plot along a line of
- * latitude, swap xStart and xEnd.
- * Jan 16, 2013 1492 rferrel Changes for non-blocking InventoryDlg.
- * Jan 25, 2013 15529 kshresth Fixed cross section "Unhandled event loop
- * exception" when loading contours and
- * Image combo
- * Aug 20, 2013 2259 bsteffen Delete old skewt plugin.
- * Feb 12, 2015 4105 rferrel Remove duplicate update of table item in addProduct.
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Jun 08, 2009 2161 lvenable Initial creation
+ * Mar 27, 2012 14506 qlin For cross section plot along a line of
+ * latitude, swap xStart and xEnd.
+ * Jan 16, 2013 1492 rferrel Changes for non-blocking InventoryDlg.
+ * Jan 25, 2013 15529 kshresth Fixed cross section "Unhandled event loop
+ * exception" when loading contours and Image
+ * combo
+ * Aug 20, 2013 2259 bsteffen Delete old skewt plugin.
+ * Feb 12, 2015 4105 rferrel Remove duplicate update of table item in
+ * addProduct.
+ * Aug 03, 2015 3861 bsteffen Move product loading to ProductLoader
+ *
*
*
* @author lvenable
@@ -691,28 +655,18 @@ public class ProductTableComp extends Composite {
ProductTableData productTableData = tableDataArray
.get(indexOf);
- DisplayType currentDisplayType = productTableData
- .getDisplayTypeSet().iterator().next();
-
- productTableData.getDisplayTypeSet().clear();
+ ProductLoader loader = new ProductLoader();
for (DisplayType displayType : productTableData
.getSelectedData().getDisplayTypes()) {
-
- productTableData.getDisplayTypeSet().add(
+ loader.addProduct(
+ productTableData.getCatalogEntry(),
displayType);
}
- List resources = productTableData
- .getResourcesToLoad();
- loadResources(false, resources);
+ loader.load();
unselectProduct(indexOf);
-
- productTableData.getDisplayTypeSet().clear();
- productTableData.getDisplayTypeSet().add(
- currentDisplayType);
-
updateLoadButtonAndProductLabels();
}
@@ -859,244 +813,25 @@ public class ProductTableComp extends Composite {
*/
private void loadProducts(boolean difference) {
int[] prodIndexes = prodSelTable.getSelectionIndices();
+ ProductLoader loader = new ProductLoader();
- List resources = new ArrayList(
- prodIndexes.length);
for (int i = 0; i < prodIndexes.length; i++) {
ProductTableData productData = tableDataArray.get(prodIndexes[i]);
- resources.addAll(productData.getResourcesToLoad());
+ for (DisplayType displayType : productData.getDisplayTypeSet()) {
+ loader.addProduct(productData.getCatalogEntry(), displayType);
+ }
+ }
+ if (difference) {
+ loader.loadDifference();
+ } else {
+ loader.load();
}
-
- loadResources(difference, resources);
unselectProduct(prodIndexes);
updateLoadButtonAndProductLabels();
}
- private void loadResources(boolean difference,
- List resourceList) {
- if (difference) {
- try {
- ((ICombinedResourceData) resourceList.get(0).getResourceData())
- .setSecondaryData(resourceList.get(1).getResourceData());
- ((ICombinedResourceData) resourceList.get(0).getResourceData())
- .setCombineOperation(CombineOperation.DIFFERENCE);
- resourceList.remove(1);
- } catch (Exception e) {
- resourceList.clear();
- throw new RuntimeException(
- "Unable to obtain a difference request", e);
- }
- }
- VolumeBrowserDialogSettings dialogSettings = VolumeBrowserAction
- .getVolumeBrowserDlg().getDialogSettings();
-
- ResourceType resourceType = dialogSettings.getViewSelection()
- .getResourceType();
-
- AbstractRenderableDisplay display = null;
-
- switch (resourceType) {
- case PLAN_VIEW:
- String editorId = DescriptorMap.getEditorId(MapDescriptor.class
- .getName());
-
- IEditorPart editorPart = EditorUtil.findEditor(editorId);
- if (editorPart == null) {
- try {
- new NewMapEditor().execute(null);
- } catch (ExecutionException e) {
- throw new RuntimeException(e);
- }
- editorPart = EditorUtil.findEditor(editorId);
- }
- AbstractEditor editor = (AbstractEditor) editorPart;
- display = (AbstractRenderableDisplay) editor.getActiveDisplayPane()
- .getRenderableDisplay().createNewDisplay();
- try {
- display.setDescriptor(new MapDescriptor());
- } catch (VizException e) {
- throw new RuntimeException(e);
- }
- break;
- case CROSS_SECTION:
- CrossSectionRenderableDisplay csDisplay = new CrossSectionRenderableDisplay();
- CrossSectionDescriptor csDesc = csDisplay.getDescriptor();
- csDesc.setRenderableDisplay(csDisplay);
-
- selectNewTableItem();
-
- IDataCatalogEntry catalogEntry = getSelectedData().get(0)
- .getCatalogEntry();
- VBMenuBarItemsMgr.SpaceTimeMenu currentSpaceTime = dialogSettings
- .getSpaceTimeSelection();
- String selectedPlaneKey = catalogEntry.getSelectedData()
- .getPlanesKey();
-
- // the selected Plane in Time setting will be either a Baseline or a
- // Lat/Lon Line
- if (currentSpaceTime == SpaceTimeMenu.TIME) {
- java.awt.Rectangle coverageRectangle = VbUtil
- .getMapCoverageRectangle();
- LineString line = null;
-
- if (selectedPlaneKey.startsWith("Lon")) {
- double yEnd, yStart, xEnd, xStart;
- yEnd = coverageRectangle.getMinY();
- yStart = coverageRectangle.getMaxY();
- xEnd = Double.parseDouble(selectedPlaneKey.replace("Lon",
- ""));
- xStart = xEnd;
- line = (new GeometryFactory())
- .createLineString(new Coordinate[] {
- new Coordinate(xStart, yStart),
- new Coordinate(xEnd, yEnd) });
- } else if (selectedPlaneKey.startsWith("Lat")) {
- double yEnd, yStart, xEnd, xStart;
- xStart = coverageRectangle.getMinX();
- xEnd = coverageRectangle.getMaxX();
- yEnd = Double.parseDouble(selectedPlaneKey.replace("Lat",
- ""));
- yStart = yEnd;
- line = (new GeometryFactory())
- .createLineString(new Coordinate[] {
- new Coordinate(xStart, yStart),
- new Coordinate(xEnd, yEnd) });
-
- }
- // assume we have selected a baseline
- else {
- ToolsDataManager dataManager = ToolsDataManager
- .getInstance();
-
- line = dataManager.getBaseline(selectedPlaneKey.replace(
- "Line", ""));
- // default to Baseline A if all else fails
-
- if (line == null) {
- line = dataManager.getBaseline("A");
- }
-
- }
-
- // set the line at which the results are displayed
- csDesc.setLines(Arrays.asList(line));
- csDesc.setLineID(catalogEntry.getSelectedData().getPlanesText());
- } else if (currentSpaceTime == SpaceTimeMenu.SPACE) {
- if (selectedPlaneKey.equals("LATS")) {
- csDesc.setLines(CrossSectionUtil.getAllLats());
- csDesc.setLineID("AllLAT");
- } else if (selectedPlaneKey.equals("LONS")) {
- csDesc.setLines(CrossSectionUtil.getAllLons());
- csDesc.setLineID("AllLON");
- }
- }
- csDesc.setHeightScale(dialogSettings.getHeightScaleSelection());
- display = csDisplay;
- break;
- case VAR_HEIGHT:
- VarHeightRenderableDisplay vhDisplay = new VarHeightRenderableDisplay();
- VarHeightDescriptor vhDesc = vhDisplay.getDescriptor();
- vhDesc.setRenderableDisplay(vhDisplay);
- vhDesc.setHeightScale(dialogSettings.getHeightScaleSelection());
- display = vhDisplay;
- break;
- case TIME_SERIES:
- display = new TimeSeriesRenderableDisplay();
- break;
- case TIME_HEIGHT:
- TimeHeightRenderableDisplay thDisplay = new TimeHeightRenderableDisplay();
- TimeHeightDescriptor thDesc = thDisplay.getDescriptor();
- thDesc.setRenderableDisplay(thDisplay);
- thDesc.setHeightScale(dialogSettings.getHeightScaleSelection());
- LeftRightMenu leftRightMenu = dialogSettings
- .getTimeDirectionSelection();
- if (leftRightMenu == LeftRightMenu.LEFT) {
- thDesc.timeDirection = TimeDirection.RIGHT_TO_LEFT;
- } else {
- thDesc.timeDirection = TimeDirection.LEFT_TO_RIGHT;
- }
- display = thDisplay;
- break;
- case SOUNDING:
- // need to handle both legacy skeqwT and nsharp skewT at the same
- // time.
- List varheightSkewtResources = new ArrayList();
- List nsharpSkewtResources = new ArrayList();
- for (ResourcePair pair : resourceList) {
- if (pair.getResourceData() instanceof D2DNSharpResourceData) {
- nsharpSkewtResources.add(pair);
- } else if (pair.getResourceData() instanceof VarHeightResourceData) {
- varheightSkewtResources.add(pair);
- }
- }
- if (!nsharpSkewtResources.isEmpty()) {
- display = new NsharpSkewTPaneDisplay();
- display.setDescriptor(new NsharpSkewTPaneDescriptor());
- if (!varheightSkewtResources.isEmpty()) {
- resourceList.removeAll(varheightSkewtResources);
- loadResources(difference, varheightSkewtResources);
- }
- } else {
- VarHeightRenderableDisplay vhhDisplay = new VarHeightRenderableDisplay();
- VarHeightHodoDescriptor vhhDesc = new VarHeightHodoDescriptor();
- vhhDisplay.setDescriptor(vhhDesc);
- vhhDesc.setRenderableDisplay(vhhDisplay);
- vhhDesc.setHeightScale(HeightScales.fromName("Log 1050-150"));
- display = vhhDisplay;
- }
- break;
- }
-
- String editorId = DescriptorMap.getEditorId(display.getDescriptor()
- .getClass().getName());
-
- IEditorPart activeEditor = EditorUtil.getActiveEditor();
- AbstractEditor editor = UiUtil.createOrOpenEditor(editorId,
- display.cloneDisplay());
-
- if (editor != null) {
- if (activeEditor != null && editor != activeEditor
- && activeEditor instanceof IMultiPaneEditor
- && editor instanceof IMultiPaneEditor) {
- IMultiPaneEditor activeMpe = (IMultiPaneEditor) activeEditor;
- IMultiPaneEditor mpe = (IMultiPaneEditor) editor;
-
- if (mpe.getNumberofPanes() < activeMpe.getNumberofPanes()) {
- for (int i = mpe.getNumberofPanes(); i < activeMpe
- .getNumberofPanes(); ++i) {
- mpe.addPane(display.createNewDisplay());
- }
-
- IDisplayPane selectedPane = activeMpe
- .getSelectedPane(IMultiPaneEditor.LOAD_ACTION);
- if (selectedPane != null) {
- IDisplayPane[] allPanes = activeMpe.getDisplayPanes();
- for (int i = 0; i < allPanes.length; ++i) {
- if (selectedPane == allPanes[i]) {
- IDisplayPane newSelectedPane = mpe
- .getDisplayPanes()[i];
- mpe.setSelectedPane(
- IMultiPaneEditor.LOAD_ACTION,
- newSelectedPane);
- break;
- }
- }
- }
- }
- }
- for (ResourcePair pair : resourceList) {
- display.getDescriptor().getResourceList().add(pair);
- }
-
- Bundle b = new Bundle();
- b.setDisplays(new AbstractRenderableDisplay[] { display });
- Job j = new BundleProductLoader(editor, b);
- j.schedule();
- }
- }
-
/**
* @param prodIndexes
* @return
@@ -1118,8 +853,11 @@ public class ProductTableComp extends Composite {
*/
private void loadSingleProduct(int selectedItemIndex) {
ProductTableData productData = tableDataArray.get(selectedItemIndex);
- List resources = productData.getResourcesToLoad();
- loadResources(false, resources);
+ ProductLoader loader = new ProductLoader();
+ for (DisplayType displayType : productData.getDisplayTypeSet()) {
+ loader.addProduct(productData.getCatalogEntry(), displayType);
+ }
+ loader.load();
unselectProduct(selectedItemIndex);
updateLoadButtonAndProductLabels();
}
diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableData.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableData.java
index 26aa830389..89576ffcb9 100644
--- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableData.java
+++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/ProductTableData.java
@@ -19,16 +19,12 @@
**/
package com.raytheon.viz.volumebrowser.vbui;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
-import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.rsc.DisplayType;
-import com.raytheon.uf.viz.core.rsc.ResourceType;
import com.raytheon.viz.volumebrowser.datacatalog.DataCatalogManager;
import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalog;
import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
@@ -40,9 +36,10 @@ import com.raytheon.viz.volumebrowser.datacatalog.IDataCatalogEntry;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Jun 9, 2009 #2161 lvenable Initial creation
+ * Date Ticket# Engineer Description
+ * ------------- -------- --------- --------------------------
+ * Jun 09, 2009 2161 lvenable Initial creation
+ * Aug 03, 2015 3861 bsteffen Move resource creation to ProductCreators
*
*
*
@@ -172,21 +169,6 @@ public class ProductTableData {
catalogEntry.getSelectedData());
}
- public List getResourcesToLoad() {
-
- ResourceType currentSetting = catalogEntry.getDialogSettings()
- .getViewSelection().getResourceType();
-
- List resourceList = new ArrayList();
-
- for (DisplayType displayType : displayTypeSet) {
- resourceList.addAll(getDataCatalog().getResourcesToLoad(
- catalogEntry, currentSetting, displayType));
- }
-
- return resourceList;
- }
-
/**
* Get the name of the product. Returns either the simple name or the image
* name depending on if the displayTypeSet contains the IMAGE DisplayType.