overlay menu now toggling but still setChecked() is not taking because of simple vs full resource definition name
This commit is contained in:
parent
164b32b54b
commit
68a3592fad
3 changed files with 160 additions and 71 deletions
|
@ -81,18 +81,17 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
||||||
if (arg0.getCommand() == null) {
|
if (arg0.getCommand() == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final AbstractEditor editor = NcDisplayMngr.getActiveNatlCntrsEditor();
|
final AbstractEditor editor = NcDisplayMngr.getActiveNatlCntrsEditor();
|
||||||
if( editor == null )
|
if( editor == null )
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
Job j = new Job("Loading Map Overlays...") {
|
Job j = new Job("Loading Overlay...") {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
protected IStatus run(IProgressMonitor monitor) {
|
protected IStatus run(IProgressMonitor monitor) {
|
||||||
long t0 = System.currentTimeMillis();
|
long t0 = System.currentTimeMillis();
|
||||||
String overlayName = arg0.getParameter("overlayName");
|
String overlayName = arg0.getParameter("overlayName");
|
||||||
|
//System.out.println(overlayName);
|
||||||
if (overlayName == null) {
|
if (overlayName == null) {
|
||||||
return new Status(IStatus.ERROR, UiPlugin.PLUGIN_ID,
|
return new Status(IStatus.ERROR, UiPlugin.PLUGIN_ID,
|
||||||
"bundleName was null");
|
"bundleName was null");
|
||||||
|
@ -111,7 +110,7 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
||||||
ResourcePair rscPair = rbt.getResourcePair();
|
ResourcePair rscPair = rbt.getResourcePair();
|
||||||
ResourceProperties props = rscPair.getProperties();
|
ResourceProperties props = rscPair.getProperties();
|
||||||
AbstractResourceData ovrlyRscData = rscPair.getResourceData();
|
AbstractResourceData ovrlyRscData = rscPair.getResourceData();
|
||||||
|
AbstractVizResource ovrlyRsc = rscPair.getResource();
|
||||||
IDisplayPane[] seldPanes = NcEditorUtil.getSelectedPanes(editor);
|
IDisplayPane[] seldPanes = NcEditorUtil.getSelectedPanes(editor);
|
||||||
|
|
||||||
if( seldPanes.length == 0 ) {
|
if( seldPanes.length == 0 ) {
|
||||||
|
@ -125,8 +124,9 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
||||||
existingMD = pane.getRenderableDisplay().getDescriptor();
|
existingMD = pane.getRenderableDisplay().getDescriptor();
|
||||||
ResourceList resourceList = existingMD.getResourceList();
|
ResourceList resourceList = existingMD.getResourceList();
|
||||||
|
|
||||||
|
|
||||||
ResourcePair rp = new ResourcePair();
|
ResourcePair rp = new ResourcePair();
|
||||||
//Boolean checkRl = resourceList.;
|
rp.setResourceData( ovrlyRscData );
|
||||||
|
|
||||||
for (ResourcePair rpe : resourceList) {
|
for (ResourcePair rpe : resourceList) {
|
||||||
// If resource is already loaded
|
// If resource is already loaded
|
||||||
|
@ -145,7 +145,7 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
||||||
//ResourcePair rp = new ResourcePair();
|
//ResourcePair rp = new ResourcePair();
|
||||||
//rp.setResourceData( ovrlyRscData );
|
//rp.setResourceData( ovrlyRscData );
|
||||||
|
|
||||||
rp.setResourceData( ovrlyRscData );
|
|
||||||
resourceList.add( rp );
|
resourceList.add( rp );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,33 +166,27 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
||||||
};
|
};
|
||||||
|
|
||||||
j.schedule();
|
j.schedule();
|
||||||
|
//NcEditorUtil.refreshGUIElements(NcDisplayMngr.getActiveNatlCntrsEditor());
|
||||||
|
// this doesn't appear to change anything
|
||||||
|
//NcEditorUtil.refreshGUIElements( (AbstractEditor)editor );
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see org.eclipse.ui.commands.IElementUpdater#updateElement(org.eclipse.ui.menus.UIElement,
|
* @see
|
||||||
* java.util.Map)
|
* org.eclipse.ui.commands.IElementUpdater#updateElement(org.eclipse.ui.
|
||||||
|
* menus.UIElement, java.util.Map)
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void updateElement(UIElement element, Map parameters) {
|
public void updateElement(UIElement element, Map parameters) {
|
||||||
|
|
||||||
/*
|
String ResourceOverlayName = (String) parameters.get("overlayName");
|
||||||
* IDisplayPaneContainer cont = EditorUtil.getActiveVizContainer();
|
|
||||||
if (cont != null) {
|
//ResourceName fullRscName = new ResourceName(
|
||||||
for (IDisplayPane pane : getSelectedPanes(cont)) {
|
// ResourceCategory.OverlayRscCategory, ResourceOverlayName, null );
|
||||||
IDescriptor descriptor = pane.getDescriptor();
|
|
||||||
if (descriptor instanceof IMapDescriptor) {
|
|
||||||
element.setChecked(MapManager.getInstance(
|
|
||||||
(IMapDescriptor) descriptor).isMapLoaded(
|
|
||||||
(String) parameters.get("mapName")));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
AbstractEditor editor = NcDisplayMngr.getActiveNatlCntrsEditor();
|
AbstractEditor editor = NcDisplayMngr.getActiveNatlCntrsEditor();
|
||||||
if (editor == null) {
|
if (editor == null) {
|
||||||
|
@ -202,22 +196,15 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
||||||
IDescriptor descriptor = editor.getActiveDisplayPane().getDescriptor();
|
IDescriptor descriptor = editor.getActiveDisplayPane().getDescriptor();
|
||||||
|
|
||||||
if (descriptor instanceof IMapDescriptor) {
|
if (descriptor instanceof IMapDescriptor) {
|
||||||
element.setChecked(MapManager.getInstance(
|
|
||||||
(IMapDescriptor) descriptor).isMapLoaded(
|
|
||||||
(String) parameters.get("mapName")));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
for (ResourcePair rscName : descriptor.getResourceList() ) {
|
||||||
protected IDisplayPane[] getSelectedPanes(IDisplayPaneContainer editor) {
|
|
||||||
IDisplayPane[] displayPanes = editor.getDisplayPanes();
|
|
||||||
|
|
||||||
if (editor instanceof IMultiPaneEditor) {
|
System.out.println("getResource().getName(): " + rscName.getResource().getName());
|
||||||
IDisplayPane selected = ((IMultiPaneEditor) editor)
|
System.out.println("ResourceOverlayName: " + ResourceOverlayName);
|
||||||
.getSelectedPane(IMultiPaneEditor.LOAD_ACTION);
|
if ( rscName.getResource().getName() == ResourceOverlayName) {
|
||||||
if (selected != null) {
|
element.setChecked( true );
|
||||||
displayPanes = new IDisplayPane[] { selected };
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return displayPanes;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -24,7 +24,10 @@ Require-Bundle: org.eclipse.ui,
|
||||||
com.raytheon.viz.ui.personalities.awips
|
com.raytheon.viz.ui.personalities.awips
|
||||||
Eclipse-LazyStart: true
|
Eclipse-LazyStart: true
|
||||||
Export-Package: gov.noaa.nws.ncep.viz.ui.perspectives;uses:="org.eclipse.ui,org.eclipse.ui.plugin,org.osgi.framework"
|
Export-Package: gov.noaa.nws.ncep.viz.ui.perspectives;uses:="org.eclipse.ui,org.eclipse.ui.plugin,org.osgi.framework"
|
||||||
Import-Package: com.raytheon.uf.viz.core.maps.display,
|
Import-Package: com.raytheon.uf.viz.core.maps,
|
||||||
|
com.raytheon.uf.viz.core.maps.display,
|
||||||
|
com.raytheon.uf.viz.core.maps.menus,
|
||||||
|
com.raytheon.uf.viz.ui.menus.widgets,
|
||||||
com.raytheon.viz.alerts.observers,
|
com.raytheon.viz.alerts.observers,
|
||||||
gov.noaa.nws.ncep.viz.gempak.grid.inv,
|
gov.noaa.nws.ncep.viz.gempak.grid.inv,
|
||||||
gov.noaa.nws.ncep.viz.gempak.grid.mapper,
|
gov.noaa.nws.ncep.viz.gempak.grid.mapper,
|
||||||
|
|
|
@ -29,6 +29,9 @@ import org.eclipse.ui.menus.CommandContributionItem;
|
||||||
import org.eclipse.ui.menus.CommandContributionItemParameter;
|
import org.eclipse.ui.menus.CommandContributionItemParameter;
|
||||||
|
|
||||||
import com.raytheon.uf.viz.core.exception.VizException;
|
import com.raytheon.uf.viz.core.exception.VizException;
|
||||||
|
import com.raytheon.uf.viz.core.maps.MapStore;
|
||||||
|
import com.raytheon.uf.viz.core.maps.MapStore.MapNode;
|
||||||
|
import com.raytheon.uf.viz.ui.menus.widgets.AbstractTearOffableCompoundContributionItem;
|
||||||
import com.raytheon.viz.ui.editor.AbstractEditor;
|
import com.raytheon.viz.ui.editor.AbstractEditor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,13 +61,19 @@ public class OverlayMenu extends CompoundContributionItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IContributionItem[] getContributionItems() {
|
protected IContributionItem[] getContributionItems() {
|
||||||
IMenuManager ovrlyMenuMngr = new MenuManager( "Overlays", OverlayMenu.class.getName() );
|
|
||||||
|
|
||||||
try {
|
IMenuManager ovrlyMenuMngr = new MenuManager( "Overlays",
|
||||||
|
OverlayMenu.class.getName() );
|
||||||
|
|
||||||
List<String> enabledFiltersList = new ArrayList<String>();
|
List<String> enabledFiltersList = new ArrayList<String>();
|
||||||
|
|
||||||
List<String> disabledFiltersList = new ArrayList<String>();
|
List<String> disabledFiltersList = new ArrayList<String>();
|
||||||
List<ResourceDefinition> enabledOvrlyRscDfns = new ArrayList<ResourceDefinition>();
|
|
||||||
List<ResourceDefinition> disabledOvrlyRscDfns = new ArrayList<ResourceDefinition>();
|
List<ResourceDefinition> enabledOvrlyRscDfns =
|
||||||
|
new ArrayList<ResourceDefinition>();
|
||||||
|
|
||||||
|
List<ResourceDefinition> disabledOvrlyRscDfns =
|
||||||
|
new ArrayList<ResourceDefinition>();
|
||||||
|
|
||||||
NcDisplayType dispType = NcEditorUtil.getNcDisplayType(
|
NcDisplayType dispType = NcEditorUtil.getNcDisplayType(
|
||||||
NcDisplayMngr.getActiveNatlCntrsEditor() );
|
NcDisplayMngr.getActiveNatlCntrsEditor() );
|
||||||
|
@ -72,7 +81,116 @@ public class OverlayMenu extends CompoundContributionItem {
|
||||||
return new IContributionItem[0];
|
return new IContributionItem[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ResourceDefinition> ovrlyRscDfns = ResourceDefnsMngr.getInstance().getResourceDefnsForCategory(
|
List<ResourceDefinition> ovrlyRscDfns = null;
|
||||||
|
try {
|
||||||
|
ovrlyRscDfns = ResourceDefnsMngr.getInstance().
|
||||||
|
getResourceDefnsForCategory(
|
||||||
|
ResourceCategory.OverlayRscCategory, "", dispType,
|
||||||
|
false, true );
|
||||||
|
} catch (VizException e1) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e1.printStackTrace();
|
||||||
|
} // no gen types, include disabled defns.
|
||||||
|
Collections.sort( ovrlyRscDfns, new Comparator<ResourceDefinition>() { // alphabetize
|
||||||
|
|
||||||
|
private Integer getCategory( ResourceDefinition o ) {
|
||||||
|
if( o.getRscImplementation().equals( "LatlonOverlay" ) ) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if( o.getRscImplementation().equals( "Locator" ) ) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
else if( o.getRscImplementation().equals( "ScaleOverlay" ) ) {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int compare(ResourceDefinition o1, ResourceDefinition o2) { // ...case
|
||||||
|
if( getCategory(o1) != getCategory(o2) ) {
|
||||||
|
return getCategory( o1 )-getCategory( o2 );
|
||||||
|
}
|
||||||
|
return o1.getResourceDefnName().compareToIgnoreCase( o2.getResourceDefnName() );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
for( ResourceDefinition rd : ovrlyRscDfns ) {
|
||||||
|
|
||||||
|
if( rd.getResourceDefnName().equals( dispType.getBaseResource() ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> filtList = ( rd.isEnabled() ? enabledFiltersList : disabledFiltersList );
|
||||||
|
List<ResourceDefinition> ovrlyRDs =
|
||||||
|
( rd.isEnabled() ? enabledOvrlyRscDfns : disabledOvrlyRscDfns );
|
||||||
|
|
||||||
|
ovrlyRDs.add( rd );
|
||||||
|
|
||||||
|
List<String> ordFiltList = null;
|
||||||
|
try {
|
||||||
|
ordFiltList = ResourceDefnsMngr.getInstance().
|
||||||
|
getResourceDefnFilter( rd.getResourceDefnName() ).getFilters();
|
||||||
|
} catch (VizException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
for( String filtStr : ordFiltList ) {
|
||||||
|
if( !filtList.contains( filtStr ) ) {
|
||||||
|
filtList.add( filtStr );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for( ResourceDefinition ord : enabledOvrlyRscDfns ) {
|
||||||
|
//System.out.println("ord="+ord.getResourceDefnName());
|
||||||
|
ovrlyMenuMngr.add( createOverlayMenuItem( ord ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
return ovrlyMenuMngr.getItems();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private CommandContributionItem createOverlayMenuItem( ResourceDefinition ovrlyRsc ) {
|
||||||
|
Map<String, String> params = new HashMap<String, String>();
|
||||||
|
params.put("overlayName", ovrlyRsc.getResourceDefnName() );
|
||||||
|
//params.put("shortName", ovrlyRsc.getResourceDefnName() );
|
||||||
|
System.out.println("ovrlyRsc.getResourceDefnName() is: " + ovrlyRsc.getResourceDefnName());
|
||||||
|
// getLocalizationName());
|
||||||
|
CommandContributionItemParameter param = new CommandContributionItemParameter(
|
||||||
|
PlatformUI.getWorkbench(), null,
|
||||||
|
"gov.noaa.nws.ncep.viz.ui.actions.loadOverlay", params,
|
||||||
|
null, null, null, ovrlyRsc.getResourceDefnName(), null, null,
|
||||||
|
CommandContributionItem.STYLE_CHECK, null, true);
|
||||||
|
|
||||||
|
return new CommandContributionItem( param );
|
||||||
|
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
@Override
|
||||||
|
protected IContributionItem[] getContributionItems() {
|
||||||
|
IMenuManager ovrlyMenuMngr = new MenuManager( "Overlays",
|
||||||
|
OverlayMenu.class.getName() );
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<String> enabledFiltersList = new ArrayList<String>();
|
||||||
|
List<String> disabledFiltersList = new ArrayList<String>();
|
||||||
|
List<ResourceDefinition> enabledOvrlyRscDfns =
|
||||||
|
new ArrayList<ResourceDefinition>();
|
||||||
|
List<ResourceDefinition> disabledOvrlyRscDfns =
|
||||||
|
new ArrayList<ResourceDefinition>();
|
||||||
|
|
||||||
|
NcDisplayType dispType = NcEditorUtil.getNcDisplayType(
|
||||||
|
NcDisplayMngr.getActiveNatlCntrsEditor() );
|
||||||
|
if( dispType != NcDisplayType.NMAP_DISPLAY ) { // ???
|
||||||
|
return new IContributionItem[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ResourceDefinition> ovrlyRscDfns =
|
||||||
|
ResourceDefnsMngr.getInstance().
|
||||||
|
getResourceDefnsForCategory(
|
||||||
ResourceCategory.OverlayRscCategory, "", dispType,
|
ResourceCategory.OverlayRscCategory, "", dispType,
|
||||||
false, true ); // no gen types, include disabled defns.
|
false, true ); // no gen types, include disabled defns.
|
||||||
|
|
||||||
|
@ -83,7 +201,7 @@ public class OverlayMenu extends CompoundContributionItem {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if( o.getRscImplementation().equals( "Locator" ) ) {
|
else if( o.getRscImplementation().equals( "Locator" ) ) {
|
||||||
return 3;
|
return 2;
|
||||||
}
|
}
|
||||||
else if( o.getRscImplementation().equals( "ScaleOverlay" ) ) {
|
else if( o.getRscImplementation().equals( "ScaleOverlay" ) ) {
|
||||||
return 3;
|
return 3;
|
||||||
|
@ -169,28 +287,6 @@ public class OverlayMenu extends CompoundContributionItem {
|
||||||
disabledFiltersList.add("Other");
|
disabledFiltersList.add("Other");
|
||||||
}
|
}
|
||||||
|
|
||||||
// add a sub-menu for each filter string
|
|
||||||
// - no, don't do this anymore
|
|
||||||
/*
|
|
||||||
for( String filtStr : disabledFiltersList ) {
|
|
||||||
IMenuManager filtMenu = new MenuManager( filtStr,
|
|
||||||
moreMenu.getId() + "." + filtStr );
|
|
||||||
|
|
||||||
for( ResourceDefinition ord : disabledOvrlyRscDfns ) {
|
|
||||||
List<String> ordFiltList = ResourceDefnsMngr.getInstance().
|
|
||||||
getResourceDefnFilter( ord.getResourceDefnName() ).getFilters();
|
|
||||||
|
|
||||||
if( (filtStr.equals("Other") &&
|
|
||||||
ordFiltList.isEmpty()) ||
|
|
||||||
ordFiltList.contains( filtStr ) ) {
|
|
||||||
|
|
||||||
filtMenu.add( createOverlayMenuItem( ord ) ); //filtOvrlyMenuItem );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
moreMenu.add( filtMenu );
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
for( ResourceDefinition ord : disabledOvrlyRscDfns ) {
|
for( ResourceDefinition ord : disabledOvrlyRscDfns ) {
|
||||||
List<String> ordFiltList = ResourceDefnsMngr.getInstance().
|
List<String> ordFiltList = ResourceDefnsMngr.getInstance().
|
||||||
getResourceDefnFilter( ord.getResourceDefnName() ).getFilters();
|
getResourceDefnFilter( ord.getResourceDefnName() ).getFilters();
|
||||||
|
@ -219,5 +315,8 @@ public class OverlayMenu extends CompoundContributionItem {
|
||||||
return new CommandContributionItem( param );
|
return new CommandContributionItem( param );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue