From 5c560e5a5636349f59af7d449381173a685f450e Mon Sep 17 00:00:00 2001 From: Ben Steffensmeier Date: Tue, 14 Aug 2012 15:03:46 -0500 Subject: [PATCH] Issue #1018 change product browser to handle no editor conditions better. Change-Id: I3235ebb6d50eee26c75d31ce91e2a01c2d49b300 Former-commit-id: 6267bdb915f639d6cc1f52037b0f2bd4e2acd91b [formerly 4d20aa0e823c0177a6ca98b189bf71aef2c7623a] [formerly 6267bdb915f639d6cc1f52037b0f2bd4e2acd91b [formerly 4d20aa0e823c0177a6ca98b189bf71aef2c7623a] [formerly 7559065a1d57ab5c10f6cdd1289c5bd345d61408 [formerly 7cb30aa5c00eea5b95b6c4b39653fabeaccdd872]]] Former-commit-id: 7559065a1d57ab5c10f6cdd1289c5bd345d61408 Former-commit-id: 48963ebc07db32bedb7bdd40d4920348bff9dfc4 [formerly 850203f7150a1a853565ea76fc77acb6450148de] Former-commit-id: 7f5bd99b0c7cb8655cdd42fd53d9694bafc239c9 --- ...questableProductBrowserDataDefinition.java | 58 ++++++++++++++++--- .../RadarProductBrowserDataDefinition.java | 58 ++++++++----------- .../viz/radar/ui/xy/RadarGraphDisplay.java | 8 ++- .../viz/radar/ui/xy/RadarXYDisplay.java | 8 ++- 4 files changed, 84 insertions(+), 48 deletions(-) diff --git a/cave/com.raytheon.uf.viz.productbrowser/src/com/raytheon/uf/viz/productbrowser/AbstractRequestableProductBrowserDataDefinition.java b/cave/com.raytheon.uf.viz.productbrowser/src/com/raytheon/uf/viz/productbrowser/AbstractRequestableProductBrowserDataDefinition.java index 3f685d902f..2839125fb5 100644 --- a/cave/com.raytheon.uf.viz.productbrowser/src/com/raytheon/uf/viz/productbrowser/AbstractRequestableProductBrowserDataDefinition.java +++ b/cave/com.raytheon.uf.viz.productbrowser/src/com/raytheon/uf/viz/productbrowser/AbstractRequestableProductBrowserDataDefinition.java @@ -27,11 +27,15 @@ import java.util.Map; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchWindow; + import com.raytheon.uf.common.dataquery.requests.RequestConstraint; import com.raytheon.uf.common.serialization.ISerializableObject; 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.DescriptorMap; import com.raytheon.uf.viz.core.IDisplayPaneContainer; import com.raytheon.uf.viz.core.catalog.CatalogQuery; import com.raytheon.uf.viz.core.catalog.DbQuery; @@ -39,6 +43,7 @@ import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay; import com.raytheon.uf.viz.core.drawables.IDescriptor; 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.procedures.Bundle; import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData; import com.raytheon.uf.viz.core.rsc.ResourceProperties; @@ -46,7 +51,10 @@ import com.raytheon.uf.viz.core.rsc.ResourceType; import com.raytheon.uf.viz.productbrowser.ProductBrowserPreference.PreferenceType; import com.raytheon.viz.ui.EditorUtil; import com.raytheon.viz.ui.MenuLoader; +import com.raytheon.viz.ui.VizWorkbenchManager; import com.raytheon.viz.ui.editor.AbstractEditor; +import com.raytheon.viz.ui.perspectives.AbstractVizPerspectiveManager; +import com.raytheon.viz.ui.perspectives.VizPerspectiveListener; /** * Product browser abstract requestable implementation @@ -134,11 +142,11 @@ public abstract class AbstractRequestableProductBrowserDataDefinition getDescriptorClass() { + return MapDescriptor.class; } /* diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarProductBrowserDataDefinition.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarProductBrowserDataDefinition.java index 929d7511f3..0387b61602 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarProductBrowserDataDefinition.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarProductBrowserDataDefinition.java @@ -27,15 +27,13 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; - import com.raytheon.uf.common.dataplugin.radar.util.RadarInfoDict; import com.raytheon.uf.common.localization.PathManagerFactory; 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.IRenderableDisplay; +import com.raytheon.uf.viz.core.DescriptorMap; +import com.raytheon.uf.viz.core.IDisplayPaneContainer; +import com.raytheon.uf.viz.core.drawables.IDescriptor; import com.raytheon.uf.viz.core.rsc.DisplayType; import com.raytheon.uf.viz.core.rsc.LoadProperties; import com.raytheon.uf.viz.core.rsc.ResourceType; @@ -44,9 +42,11 @@ import com.raytheon.uf.viz.productbrowser.AbstractRequestableProductBrowserDataD import com.raytheon.uf.viz.productbrowser.ProductBrowserLabel; import com.raytheon.uf.viz.productbrowser.ProductBrowserPreference; import com.raytheon.viz.radar.rsc.RadarResourceData; +import com.raytheon.viz.radar.ui.xy.RadarGraphDescriptor; import com.raytheon.viz.radar.ui.xy.RadarGraphDisplay; +import com.raytheon.viz.radar.ui.xy.RadarXYDescriptor; import com.raytheon.viz.radar.ui.xy.RadarXYDisplay; -import com.raytheon.viz.ui.editor.EditorInput; +import com.raytheon.viz.ui.UiUtil; /** * Product browser implementation for radar @@ -174,40 +174,30 @@ public class RadarProductBrowserDataDefinition extends return new RadarResourceData(); } - /* - * (non-Javadoc) - * - * @see - * com.raytheon.uf.viz.productbrowser.AbstractProductBrowserDataDefinition - * #getEditor() - */ @Override - public void getEditor() { + protected IDisplayPaneContainer openNewEditor(String editorId) { + if (editorId.equals(DescriptorMap.getEditorId(RadarXYDescriptor.class + .getName()))) { + return UiUtil.createEditor(editorId, new RadarXYDisplay()); + } else if (editorId.equals(DescriptorMap + .getEditorId(RadarGraphDescriptor.class.getName()))) { + return UiUtil.createEditor(editorId, new RadarGraphDisplay()); + } else { + return super.openNewEditor(editorId); + } + } + + @Override + public Class getDescriptorClass() { int prodCode = Integer.parseInt((resourceData).getMetadataMap() .get("productCode").getConstraintValue()); String format = infoDict.getInfo(prodCode).getFormat(); if ("XY".equals(format)) { - String editor = "com.raytheon.viz.radar.ui.xy.RadarXYEditor"; - EditorInput cont = new EditorInput( - (IRenderableDisplay) new RadarXYDisplay()); - try { - PlatformUI.getWorkbench().getActiveWorkbenchWindow() - .getActivePage().openEditor(cont, editor, true); - } catch (PartInitException e) { - statusHandler.handle(Priority.PROBLEM, - "Unable to open editor : " + editor, e); - } + return RadarXYDescriptor.class; } else if ("Graph".equals(format)) { - String editor = "com.raytheon.viz.radar.ui.xy.RadarGraphEditor"; - EditorInput cont = new EditorInput( - (IRenderableDisplay) new RadarGraphDisplay()); - try { - PlatformUI.getWorkbench().getActiveWorkbenchWindow() - .getActivePage().openEditor(cont, editor, true); - } catch (PartInitException e) { - statusHandler.handle(Priority.PROBLEM, - "Unable to open editor : " + editor, e); - } + return RadarGraphDescriptor.class; + } else { + return super.getDescriptorClass(); } } diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGraphDisplay.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGraphDisplay.java index 321270a25f..919ebe071b 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGraphDisplay.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGraphDisplay.java @@ -102,9 +102,11 @@ public class RadarGraphDisplay extends AbstractNonMapDisplay { GraphProperties graphProps) throws VizException { // Plot the resource data on the graph for (ResourcePair rp : getDescriptor().getResourceList()) { - graphProps = (GraphProperties) calcPaintDataTime(graphProps, - rp.getResource()); - rp.getResource().paint(target, graphProps); + if (rp.getResource() != null) { + graphProps = (GraphProperties) calcPaintDataTime(graphProps, + rp.getResource()); + rp.getResource().paint(target, graphProps); + } } } diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarXYDisplay.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarXYDisplay.java index 19f01cb197..92c01ce919 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarXYDisplay.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarXYDisplay.java @@ -80,9 +80,11 @@ public class RadarXYDisplay extends AbstractNonMapDisplay { // Plot the resource data on the graph for (ResourcePair rp : getDescriptor().getResourceList()) { - graphProps = (GraphProperties) calcPaintDataTime(graphProps, - rp.getResource()); - rp.getResource().paint(target, graphProps); + if (rp.getResource() != null) { + graphProps = (GraphProperties) calcPaintDataTime(graphProps, + rp.getResource()); + rp.getResource().paint(target, graphProps); + } } }