+
+
+
+
+
+
+
+ [Enter description of this extension point.]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Enter the first release in which this extension point appears.]
+
+
+
+
+
+
+
+
+ [Enter extension point usage example here.]
+
+
+
+
+
+
+
+
+ [Enter API information here.]
+
+
+
+
+
+
+
+
+ [Enter information about supplied implementation of this extension point.]
+
+
+
+
+
diff --git a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/widgets/SubmenuContributionItem.java b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/widgets/SubmenuContributionItem.java
index 3d99c861bd..45ea89b798 100644
--- a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/widgets/SubmenuContributionItem.java
+++ b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/widgets/SubmenuContributionItem.java
@@ -37,7 +37,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.VariableSubstitutionUtil;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.jobs.JobPool;
-import com.raytheon.uf.viz.ui.menus.xml.AbstractMenuContributionItem;
+import com.raytheon.uf.viz.ui.menus.xml.IContribItemProvider;
import com.raytheon.uf.viz.ui.menus.xml.MenuXMLMap;
/**
@@ -46,11 +46,12 @@ import com.raytheon.uf.viz.ui.menus.xml.MenuXMLMap;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Mar 26, 2009 chammack Initial creation
- * May 08, 2013 1978 bsteffen Perform variable substitution on subMenu
- * IDs.
+ * Date Ticket# Engineer Description
+ * ------------- -------- ----------- -----------------------------------------
+ * Mar 26, 2009 chammack Initial creation
+ * May 08, 2013 1978 bsteffen Perform variable substitution on subMenu
+ * IDs.
+ * Dec 11, 2013 2602 bsteffen Update MenuXMLMap.
*
*
*
@@ -120,8 +121,8 @@ public class SubmenuContributionItem extends MenuManager {
for (int i = 0; i < contribs.length; i++) {
try {
- AbstractMenuContributionItem> amc = MenuXMLMap.xmlMapping
- .get(contribs[i].getClass());
+ IContribItemProvider amc = MenuXMLMap
+ .getProvider(contribs[i].getClass());
contributionItems[i] = amc.getContributionItems(
contribs[i], this.subs, this.removals);
diff --git a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuContribution.java b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuContribution.java
index 05ba0e55ba..5b7bea3c66 100644
--- a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuContribution.java
+++ b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuContribution.java
@@ -42,14 +42,16 @@ import com.raytheon.uf.viz.ui.menus.DiscoverMenuContributions;
import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
/**
- * TODO Add Description
+ * Providex ability to include menus from other localization files.
*
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Apr 27, 2009 chammack Initial creation
+ * Date Ticket# Engineer Description
+ * ------------- -------- ----------- -----------------------------------------
+ * Apr 27, 2009 chammack Initial creation
+ * Dec 11, 2013 2602 bsteffen Update MenuXMLMap.
+ *
*
*
*
@@ -103,8 +105,8 @@ public class IncludeMenuContribution extends
if (mtf.contributions != null) {
for (CommonAbstractMenuContribution c : mtf.contributions) {
- AbstractMenuContributionItem> amc = MenuXMLMap.xmlMapping
- .get(c.getClass());
+ IContribItemProvider amc = MenuXMLMap.getProvider(c
+ .getClass());
IContributionItem[] contribItems = amc
.getContributionItems(c, combinedSub, removals);
if (contribItems != null && contribItems.length > 0) {
diff --git a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuItem.java b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuItem.java
index 27a2c4e058..42c44202dc 100644
--- a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuItem.java
+++ b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/IncludeMenuItem.java
@@ -52,9 +52,10 @@ import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Mar 12, 2009 chammack Initial creation
+ * Date Ticket# Engineer Description
+ * ------------- -------- ----------- -----------------------------------------
+ * Mar 12, 2009 chammack Initial creation
+ * Dec 11, 2013 2602 bsteffen Update MenuXMLMap.
*
*
*
@@ -136,8 +137,8 @@ public class IncludeMenuItem extends CommonIncludeMenuItem implements
if (mtf.contributions != null) {
for (CommonAbstractMenuContribution c : mtf.contributions) {
- AbstractMenuContributionItem> amc = MenuXMLMap.xmlMapping
- .get(c.getClass());
+ IContribItemProvider amc = MenuXMLMap.getProvider(c
+ .getClass());
if (removalsSet.contains(c.id))
continue;
diff --git a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/MenuXMLMap.java b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/MenuXMLMap.java
index 38199488b0..4bef434642 100644
--- a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/MenuXMLMap.java
+++ b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/MenuXMLMap.java
@@ -22,6 +22,14 @@ package com.raytheon.uf.viz.ui.menus.xml;
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.menus.xml.CommonAbstractMenuContribution;
import com.raytheon.uf.common.menus.xml.CommonBundleMenuContribution;
import com.raytheon.uf.common.menus.xml.CommonCommandContribution;
import com.raytheon.uf.common.menus.xml.CommonDynamicMenuContribution;
@@ -31,6 +39,9 @@ import com.raytheon.uf.common.menus.xml.CommonSeparatorMenuContribution;
import com.raytheon.uf.common.menus.xml.CommonSubmenuContribution;
import com.raytheon.uf.common.menus.xml.CommonTitleContribution;
import com.raytheon.uf.common.menus.xml.CommonToolbarSubmenuContribution;
+import com.raytheon.uf.common.status.IUFStatusHandler;
+import com.raytheon.uf.common.status.UFStatus;
+import com.raytheon.uf.common.status.UFStatus.Priority;
/**
* TODO Add Description
@@ -38,10 +49,11 @@ import com.raytheon.uf.common.menus.xml.CommonToolbarSubmenuContribution;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Jun 28, 2010 mnash Initial creation
- * Jul 31, 2012 875 rferrel Added DynamicMenuContribution.
+ * Date Ticket# Engineer Description
+ * ------------- -------- ----------- -----------------------------------------
+ * Jun 28, 2010 mnash Initial creation
+ * Jul 31, 2012 875 rferrel Added DynamicMenuContribution.
+ * Dec 11, 2013 2602 bsteffen Load providers from extension point.
*
*
*
@@ -50,9 +62,16 @@ import com.raytheon.uf.common.menus.xml.CommonToolbarSubmenuContribution;
*/
public class MenuXMLMap {
- public static final Map, AbstractMenuContributionItem>> xmlMapping = new HashMap, AbstractMenuContributionItem>>();
- static {
+ private static final IUFStatusHandler statusHandler = UFStatus
+ .getHandler(DynamicMenuContribution.class);
+
+ private static final String EXTENSION_ID = "com.raytheon.uf.viz.ui.menus.contribItemProvider";
+
+ private static final Map, IContribItemProvider> xmlMapping = init();
+
+ private static Map, IContribItemProvider> init() {
+ Map, IContribItemProvider> xmlMapping = new HashMap, IContribItemProvider>();
xmlMapping.put(CommonBundleMenuContribution.class,
new BundleMenuContribution());
xmlMapping.put(CommonCommandContribution.class,
@@ -70,10 +89,31 @@ public class MenuXMLMap {
new ToolbarSubmenuContribution());
xmlMapping.put(CommonDynamicMenuContribution.class,
new DynamicMenuContribution());
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_ID);
+ if (point != null) {
+ IExtension[] extensions = point.getExtensions();
+ for (IExtension extension : extensions) {
+ for (IConfigurationElement element : extension
+ .getConfigurationElements()) {
+ try {
+ CommonAbstractMenuContribution contrib = (CommonAbstractMenuContribution) element
+ .createExecutableExtension("contribution");
+ IContribItemProvider provider = (IContribItemProvider) element
+ .createExecutableExtension("itemProvider");
+ xmlMapping.put(contrib.getClass(), provider);
+ } catch (CoreException e) {
+ statusHandler.handle(Priority.PROBLEM,
+ "Error preparing menu contributions.", e);
+ }
+ }
+ }
+ }
+ return xmlMapping;
}
- public static void registerMapping(Class> clazz,
- AbstractMenuContributionItem> item) {
- xmlMapping.put(clazz, item);
+ public static IContribItemProvider getProvider(
+ Class extends CommonAbstractMenuContribution> contribClass) {
+ return xmlMapping.get(contribClass);
}
}
diff --git a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/ToolbarSubmenuContribution.java b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/ToolbarSubmenuContribution.java
index d190589798..489f4b2339 100644
--- a/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/ToolbarSubmenuContribution.java
+++ b/cave/com.raytheon.uf.viz.ui.menus/src/com/raytheon/uf/viz/ui/menus/xml/ToolbarSubmenuContribution.java
@@ -32,6 +32,23 @@ import com.raytheon.uf.common.menus.xml.VariableSubstitution;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.ui.menus.widgets.ToolbarSubmenuContributionItem;
+/**
+ *
+ * Contribution for adding submenus to a tool bar.
+ *
+ *
+ *
+ * SOFTWARE HISTORY
+ *
+ * Date Ticket# Engineer Description
+ * ------------- -------- ----------- -----------------------------------------
+ * Dec 11, 2013 2602 bsteffen Update MenuXMLMap.
+ *
+ *
+ *
+ * @author unknown
+ * @version 1.0
+ */
public class ToolbarSubmenuContribution extends
AbstractMenuContributionItem {
@@ -52,8 +69,8 @@ public class ToolbarSubmenuContribution extends
List contribItemList = new ArrayList();
for (CommonAbstractMenuContribution amc : item.contributions) {
- AbstractMenuContributionItem> common = MenuXMLMap.xmlMapping
- .get(amc.getClass());
+ IContribItemProvider common = MenuXMLMap
+ .getProvider(amc.getClass());
contribItemList.addAll(Arrays.asList(common.getContributionItems(
amc, subs, removals)));
}
diff --git a/cave/com.raytheon.viz.satellite/META-INF/MANIFEST.MF b/cave/com.raytheon.viz.satellite/META-INF/MANIFEST.MF
index 367976ea9a..41ba3ed83d 100644
--- a/cave/com.raytheon.viz.satellite/META-INF/MANIFEST.MF
+++ b/cave/com.raytheon.viz.satellite/META-INF/MANIFEST.MF
@@ -1,30 +1,29 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Satellite Plug-in
+Bundle-Name: Satellite Visualization Plug-in
Bundle-SymbolicName: com.raytheon.viz.satellite;singleton:=true
-Bundle-Version: 1.12.1174.qualifier
-Bundle-Activator: com.raytheon.viz.satellite.Activator
+Bundle-Version: 1.13.0.qualifier
Bundle-Vendor: Raytheon
Eclipse-RegisterBuddy: com.raytheon.viz.core, com.raytheon.uf.viz.core, com.raytheon.viz.ui
Eclipse-BuddyPolicy: ext, global
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
com.raytheon.uf.viz.core,
- com.raytheon.uf.common.dataplugin;bundle-version="1.12.1174",
- com.raytheon.uf.common.dataplugin.satellite;bundle-version="1.0.0",
- com.raytheon.uf.common.datastorage;bundle-version="1.12.1174",
- com.raytheon.uf.common.serialization.comm;bundle-version="1.12.1174",
- com.raytheon.uf.common.geospatial;bundle-version="1.12.1174",
- com.raytheon.uf.common.colormap;bundle-version="1.12.1174",
- com.raytheon.uf.common.pointdata;bundle-version="1.12.1174",
- com.raytheon.uf.common.message;bundle-version="1.12.1174",
- com.raytheon.uf.viz.productbrowser;bundle-version="1.11.31",
- com.raytheon.uf.viz.derivparam;bundle-version="1.12.1174",
- com.raytheon.uf.viz.ui.menus;bundle-version="1.12.1174",
- com.raytheon.viz.ui;bundle-version="1.12.1174",
- com.raytheon.viz.core;bundle-version="1.12.1174",
- javax.measure,
- com.raytheon.uf.common.style;bundle-version="1.0.0"
+ com.raytheon.uf.common.dataplugin,
+ com.raytheon.uf.common.dataplugin.satellite,
+ com.raytheon.uf.common.datastorage,
+ com.raytheon.uf.common.serialization.comm,
+ com.raytheon.uf.common.geospatial,
+ com.raytheon.uf.common.colormap,
+ com.raytheon.uf.common.pointdata,
+ com.raytheon.uf.common.message,
+ com.raytheon.uf.viz.productbrowser,
+ com.raytheon.uf.viz.derivparam,
+ com.raytheon.uf.viz.ui.menus,
+ com.raytheon.uf.common.style,
+ com.raytheon.viz.ui,
+ com.raytheon.viz.core,
+ javax.measure
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.viz.satellite,
com.raytheon.viz.satellite.rsc
diff --git a/cave/com.raytheon.viz.satellite/plugin.xml b/cave/com.raytheon.viz.satellite/plugin.xml
index 2722917d76..c7d3cc2bce 100644
--- a/cave/com.raytheon.viz.satellite/plugin.xml
+++ b/cave/com.raytheon.viz.satellite/plugin.xml
@@ -48,4 +48,11 @@
name="Satellite"
category="com.raytheon.uf.viz.productbrowser.productbrowserpreferencespage"/>