two panel / two column layout handler, menu action, bundles

This commit is contained in:
mjames-upc 2016-04-20 10:10:09 -05:00
parent 4c0cd3ca3c
commit 4b76ff83b5
8 changed files with 519 additions and 0 deletions

View file

@ -776,12 +776,30 @@
name="frameCount"
value="300">
</parameter>
</command>
<command commandId="com.raytheon.viz.ui.actions.setframes">
<parameter
name="frameCount"
value="350">
</parameter>
</command>
<command commandId="com.raytheon.viz.ui.actions.setframes">
<parameter
name="frameCount"
value="400">
</parameter>
</command>
<command commandId="com.raytheon.viz.ui.actions.setframes">
<parameter
name="frameCount"
value="450">
</parameter>
</command>
<command commandId="com.raytheon.viz.ui.actions.setframes">
<parameter
name="frameCount"
value="500">
</parameter>
</command>
</menuContribution>
<menuContribution
@ -882,6 +900,10 @@
definitionId="com.raytheon.uf.viz.d2d.ui.inD2DActionSet">
</reference>
</activeWhen>
</handler>
<handler
class="com.raytheon.uf.viz.d2d.ui.map.actions.TwoPanelLayoutHandler"
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.twoPanelLayout">
</handler>
<handler
class="com.raytheon.uf.viz.d2d.ui.map.actions.FourPanelLayoutHandler"
@ -1389,6 +1411,12 @@
categoryId="com.raytheon.uf.viz.d2d.ui"
description="Opens the display properties dialog"
name="Display Properties">
</command>
<command
id="com.raytheon.uf.viz.d2d.ui.map.actions.twoPanelLayout"
categoryId="com.raytheon.uf.viz.d2d.ui"
description="Switches editor to a two panel layout"
name="Two Panel Layout">
</command>
<command
id="com.raytheon.uf.viz.d2d.ui.map.actions.fourPanelLayout"

View file

@ -0,0 +1,60 @@
/**
* 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.ui.map.actions;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorPart;
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.viz.ui.EditorUtil;
import com.raytheon.viz.ui.actions.NewTwoPanelEditor;
import com.raytheon.viz.ui.tools.AbstractTool;
/**
*
* Handles entering 4-pane mode
*
* <pre>
*
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 20, 2016 mjames@ucar Copied from FourPanelLayoutHandler
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
public class TwoPanelLayoutHandler extends AbstractTool {
public Object execute(ExecutionEvent arg0) throws ExecutionException {
// There might be a better way to merge these two actions.
IEditorPart curEditor = EditorUtil.getActiveEditor();
if (curEditor == null) {
new NewTwoPanelEditor().execute(null);
} else if (curEditor instanceof IDisplayPaneContainer) {
TwoPanelLayoutMenuAction menuAction = new TwoPanelLayoutMenuAction();
menuAction.setContainer((IDisplayPaneContainer) curEditor);
menuAction.run();
}
return null;
}
}

View file

@ -0,0 +1,113 @@
/**
* 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.ui.map.actions;
import java.util.List;
import org.eclipse.ui.part.EditorPart;
import com.raytheon.uf.viz.core.IDisplayPane;
import com.raytheon.uf.viz.core.drawables.IRenderableDisplay;
import com.raytheon.uf.viz.d2d.core.ID2DRenderableDisplay;
import com.raytheon.uf.viz.d2d.core.legend.D2DLegendResource;
import com.raytheon.uf.viz.d2d.core.legend.D2DLegendResource.LegendMode;
import com.raytheon.viz.ui.IRenameablePart;
import com.raytheon.viz.ui.cmenu.AbstractRightClickAction;
import com.raytheon.viz.ui.editor.IMultiPaneEditor;
/**
* Switch to a Two Panel layout in the editor pane.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 20, 2016 mjames@ucar Copied from FourPanelLayoutMenuAction
*
* </pre>
*
* @author bgonzale
* @version 1
*/
public class TwoPanelLayoutMenuAction extends AbstractRightClickAction {
/**
* Default constructor.
*/
public TwoPanelLayoutMenuAction() {
super("Two Panel Layout");
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.Action#run()
*/
@Override
public void run() {
if (getContainer() instanceof IMultiPaneEditor == false
|| getContainer().getDisplayPanes()[0].getRenderableDisplay() instanceof ID2DRenderableDisplay == false) {
return;
}
IMultiPaneEditor editor = (IMultiPaneEditor) getContainer();
IRenderableDisplay definiteDisplay = getContainer().getDisplayPanes()[0]
.getRenderableDisplay();
String partName = null;
if (editor instanceof EditorPart) {
EditorPart part = (EditorPart) editor;
if (!part.getPartName().equals(part.getEditorInput().getName())) {
partName = part.getPartName();
}
}
if (editor.getNumberofPanes() > 1) {
for (IDisplayPane pane : getContainer().getDisplayPanes()) {
editor.showPane(pane);
}
} else {
for (int i = 1; i < 2; ++i) {
editor.addPane(definiteDisplay.createNewDisplay());
}
}
// keep the part name if it was customized
if (partName != null && editor instanceof IRenameablePart) {
((IRenameablePart) editor).setPartName(partName);
}
for (IDisplayPane pane : editor.getDisplayPanes()) {
List<D2DLegendResource> rscs = pane.getDescriptor()
.getResourceList()
.getResourcesByTypeAsType(D2DLegendResource.class);
for (D2DLegendResource rsc : rscs) {
rsc.setLegendMode(LegendMode.PRODUCT);
}
}
editor.setSelectedPane(IMultiPaneEditor.IMAGE_ACTION, null);
editor.setSelectedPane(IMultiPaneEditor.VISIBLE_PANE, null);
editor.setSelectedPane(IMultiPaneEditor.LOAD_ACTION, null);
editor.refresh();
}
}

View file

@ -62,6 +62,7 @@ import com.raytheon.uf.viz.d2d.ui.map.actions.SinglePanelLayoutMenuAction;
import com.raytheon.uf.viz.d2d.ui.map.actions.SkipFramesAction;
import com.raytheon.uf.viz.d2d.ui.map.actions.SkipFramesAction.SkipFrameMode;
import com.raytheon.uf.viz.d2d.ui.map.actions.SwapWithLargePaneAction;
import com.raytheon.uf.viz.d2d.ui.map.actions.TwoPanelLayoutMenuAction;
import com.raytheon.viz.ui.actions.SelectPaneAction;
import com.raytheon.viz.ui.cmenu.AbstractRightClickAction;
import com.raytheon.viz.ui.cmenu.LoopingAction;
@ -89,6 +90,7 @@ import com.raytheon.viz.ui.statusline.FrameCountDisplay;
* Mar 21, 2013 1638 mschenke Changed map scales not tied to d2d
* Oct 10, 2013 2104 mschenke Switched to use MapScalesManager
* Jan 14, 2014 2594 bclement added low memory notification
* Apr 20, 2016 mjames@ucar Added two-column editor panes.
* </pre>
*
* @author mschenke
@ -285,6 +287,10 @@ public class D2DPerspectiveManager extends AbstractCAVEPerspectiveManager {
rotatePanelLayoutMenuAction.setContainer(container);
menuManager.add(rotatePanelLayoutMenuAction);
TwoPanelLayoutMenuAction twoPanelLayoutMenuAction = new TwoPanelLayoutMenuAction();
twoPanelLayoutMenuAction.setContainer(container);
menuManager.add(twoPanelLayoutMenuAction);
FourPanelLayoutMenuAction fourPanelLayoutMenuAction = new FourPanelLayoutMenuAction();
fourPanelLayoutMenuAction.setContainer(container);
menuManager.add(fourPanelLayoutMenuAction);
@ -294,6 +300,10 @@ public class D2DPerspectiveManager extends AbstractCAVEPerspectiveManager {
selectPaneAction.setSelectedRsc(null);
menuManager.add(selectPaneAction);
} else {
TwoPanelLayoutMenuAction twoPanelLayoutMenuAction = new TwoPanelLayoutMenuAction();
twoPanelLayoutMenuAction.setContainer(container);
menuManager.add(twoPanelLayoutMenuAction);
FourPanelLayoutMenuAction fourPanelLayoutMenuAction = new FourPanelLayoutMenuAction();
fourPanelLayoutMenuAction.setContainer(container);
menuManager.add(fourPanelLayoutMenuAction);

View file

@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
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.
-->
<!-- loads two panel precip analysis, looks like this
+++++++++++++++++++++++
+ DHR + DSP +
+++++++++++++++++++++++
substitution keys:
product the productCode to load
elev a range of elevations to load seperated by two dashes.
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarMosaicResourceData"
productName="${name1}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
retrieveData="false">
<binOffset posOffset="360" negOffset="0" virtualOffset="0" />
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product1}" constraintType="EQUALS"/>
</mapping>
<mapping key="icao">
<constraint constraintValue="${mosaicIcaoList}" constraintType="IN" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS"/>
</mapping>
</metadataMap>
<resourceFactory xsi:type="radarMosaicResourceFactory" values="${mosaicIcaoList}" key="kxxx">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true" />
<resourceData xsi:type="radarResourceData"
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product1}"
constraintType="EQUALS" />
</mapping>
<mapping key="icao">
<constraint constraintValue="kxxx" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</resourceFactory>
</resourceData>
</resource>
</descriptor>
</displays>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarMosaicResourceData"
productName="${name2}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="360" negOffset="0" virtualOffset="0" />
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product2}" constraintType="EQUALS"/>
</mapping>
<mapping key="icao">
<constraint constraintValue="${mosaicIcaoList}" constraintType="IN" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS"/>
</mapping>
</metadataMap>
<resourceFactory xsi:type="radarMosaicResourceFactory" values="${mosaicIcaoList}" key="kxxx">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true" />
<resourceData xsi:type="radarResourceData"
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product2}"
constraintType="EQUALS" />
</mapping>
<mapping key="icao">
<constraint constraintValue="kxxx" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</resourceFactory>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
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.
-->
<!-- loads two panel precip analysis, looks like this
+++++++++++++++++++++++
+ DHR + DSP +
+++++++++++++++++++++++
substitution keys:
product the productCode to load
elev a range of elevations to load seperated by two dashes.
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="32" constraintType="EQUALS"/>
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}" constraintType="EQUALS"/>
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS"/>
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="138" constraintType="EQUALS"/>
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}" constraintType="EQUALS"/>
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS"/>
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -38,6 +38,34 @@
<substitute key="element" value="HHC"/>
<substitute key="colormap" value="Radar/HHC NEXRCOMP"/>
</contribute>
<contribute xsi:type="titleItem" titleText="------ 2 Panel Mosaic ------"
id="RadarMosaic" />
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaicTwoPanel.xml"
menuText="DHR and DSP" id="RadarHybridScanRefl">
<substitute key="elevation" value="0" />
<substitute key="product1" value="32" />
<substitute key="product2" value="138" />
<substitute key="name1" value="DHR Digital Hybrid Reflectivity" />
<substitute key="name2" value="DSP Storm Total Precipitation" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaicTwoPanel.xml"
menuText="DHR and HHC" id="RadarHybridScanRefl">
<substitute key="elevation" value="0" />
<substitute key="product1" value="32" />
<substitute key="product2" value="177" />
<substitute key="name1" value="DHR Digital Hybrid Reflectivity" />
<substitute key="name2" value="HHC Hybrid Hydrometeor Classification" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaicTwoPanel.xml"
menuText="N0Q and N0U" id="RadarHybridScanRefl">
<substitute key="elevation" value="0.5" />
<substitute key="product1" value="94" />
<substitute key="product2" value="99" />
<substitute key="name1" value="N0Q 0.5 deg Reflectivity" />
<substitute key="name2" value="N0U 0.5 deg Velocity" />
</contribute>
<contribute xsi:type="titleItem" titleText="------ Mosaic ------"
id="RadarMosaic" />
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaic.xml"

View file

@ -57,6 +57,11 @@
id="${icao}PrecipAnalysis4panel">
<substitute key="icao" value="${icao}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarPrecipAnalysis.xml" menuText="Precip Analysis (2panel)"
id="${icao}PrecipAnalysis2panel">
<substitute key="icao" value="${icao}" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarBestRes.xml"
menuText="Storm Total Accum (STA)" id="${icao}StormTotalAccumSTA">
<substitute key="icao" value="${icao}" />