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) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final AbstractEditor editor = NcDisplayMngr.getActiveNatlCntrsEditor();
|
||||
if( editor == null )
|
||||
return null;
|
||||
|
||||
Job j = new Job("Loading Map Overlays...") {
|
||||
Job j = new Job("Loading Overlay...") {
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
long t0 = System.currentTimeMillis();
|
||||
String overlayName = arg0.getParameter("overlayName");
|
||||
|
||||
//System.out.println(overlayName);
|
||||
if (overlayName == null) {
|
||||
return new Status(IStatus.ERROR, UiPlugin.PLUGIN_ID,
|
||||
"bundleName was null");
|
||||
|
@ -111,7 +110,7 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
|||
ResourcePair rscPair = rbt.getResourcePair();
|
||||
ResourceProperties props = rscPair.getProperties();
|
||||
AbstractResourceData ovrlyRscData = rscPair.getResourceData();
|
||||
|
||||
AbstractVizResource ovrlyRsc = rscPair.getResource();
|
||||
IDisplayPane[] seldPanes = NcEditorUtil.getSelectedPanes(editor);
|
||||
|
||||
if( seldPanes.length == 0 ) {
|
||||
|
@ -125,9 +124,10 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
|||
existingMD = pane.getRenderableDisplay().getDescriptor();
|
||||
ResourceList resourceList = existingMD.getResourceList();
|
||||
|
||||
|
||||
ResourcePair rp = new ResourcePair();
|
||||
//Boolean checkRl = resourceList.;
|
||||
|
||||
rp.setResourceData( ovrlyRscData );
|
||||
|
||||
for (ResourcePair rpe : resourceList) {
|
||||
// If resource is already loaded
|
||||
if (rpe.getResource() != null && rpe.getResource().getName() != null
|
||||
|
@ -145,7 +145,7 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
|||
//ResourcePair rp = new ResourcePair();
|
||||
//rp.setResourceData( ovrlyRscData );
|
||||
|
||||
rp.setResourceData( ovrlyRscData );
|
||||
|
||||
resourceList.add( rp );
|
||||
}
|
||||
}
|
||||
|
@ -166,58 +166,45 @@ public class MapOverlayAction extends AbstractHandler implements IElementUpdater
|
|||
};
|
||||
|
||||
j.schedule();
|
||||
|
||||
|
||||
//NcEditorUtil.refreshGUIElements(NcDisplayMngr.getActiveNatlCntrsEditor());
|
||||
// this doesn't appear to change anything
|
||||
//NcEditorUtil.refreshGUIElements( (AbstractEditor)editor );
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.ui.commands.IElementUpdater#updateElement(org.eclipse.ui.menus.UIElement,
|
||||
* java.util.Map)
|
||||
* @see
|
||||
* org.eclipse.ui.commands.IElementUpdater#updateElement(org.eclipse.ui.
|
||||
* menus.UIElement, java.util.Map)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public void updateElement(UIElement element, Map parameters) {
|
||||
|
||||
/*
|
||||
* IDisplayPaneContainer cont = EditorUtil.getActiveVizContainer();
|
||||
if (cont != null) {
|
||||
for (IDisplayPane pane : getSelectedPanes(cont)) {
|
||||
IDescriptor descriptor = pane.getDescriptor();
|
||||
if (descriptor instanceof IMapDescriptor) {
|
||||
element.setChecked(MapManager.getInstance(
|
||||
(IMapDescriptor) descriptor).isMapLoaded(
|
||||
(String) parameters.get("mapName")));
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
String ResourceOverlayName = (String) parameters.get("overlayName");
|
||||
|
||||
//ResourceName fullRscName = new ResourceName(
|
||||
// ResourceCategory.OverlayRscCategory, ResourceOverlayName, null );
|
||||
|
||||
AbstractEditor editor = NcDisplayMngr.getActiveNatlCntrsEditor();
|
||||
if (editor == null) {
|
||||
if (editor == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
IDescriptor descriptor = editor.getActiveDisplayPane().getDescriptor();
|
||||
|
||||
if (descriptor instanceof IMapDescriptor) {
|
||||
element.setChecked(MapManager.getInstance(
|
||||
(IMapDescriptor) descriptor).isMapLoaded(
|
||||
(String) parameters.get("mapName")));
|
||||
}
|
||||
|
||||
}
|
||||
protected IDisplayPane[] getSelectedPanes(IDisplayPaneContainer editor) {
|
||||
IDisplayPane[] displayPanes = editor.getDisplayPanes();
|
||||
|
||||
if (editor instanceof IMultiPaneEditor) {
|
||||
IDisplayPane selected = ((IMultiPaneEditor) editor)
|
||||
.getSelectedPane(IMultiPaneEditor.LOAD_ACTION);
|
||||
if (selected != null) {
|
||||
displayPanes = new IDisplayPane[] { selected };
|
||||
}
|
||||
for (ResourcePair rscName : descriptor.getResourceList() ) {
|
||||
|
||||
System.out.println("getResource().getName(): " + rscName.getResource().getName());
|
||||
System.out.println("ResourceOverlayName: " + ResourceOverlayName);
|
||||
if ( rscName.getResource().getName() == ResourceOverlayName) {
|
||||
element.setChecked( true );
|
||||
}
|
||||
}
|
||||
}
|
||||
return displayPanes;
|
||||
}
|
||||
}
|
|
@ -24,7 +24,10 @@ Require-Bundle: org.eclipse.ui,
|
|||
com.raytheon.viz.ui.personalities.awips
|
||||
Eclipse-LazyStart: true
|
||||
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,
|
||||
gov.noaa.nws.ncep.viz.gempak.grid.inv,
|
||||
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 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;
|
||||
|
||||
/**
|
||||
|
@ -55,16 +58,129 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
|
|||
* @version 1
|
||||
*/
|
||||
public class OverlayMenu extends CompoundContributionItem {
|
||||
|
||||
@Override
|
||||
protected IContributionItem[] getContributionItems() {
|
||||
|
||||
IMenuManager ovrlyMenuMngr = new MenuManager( "Overlays",
|
||||
OverlayMenu.class.getName() );
|
||||
|
||||
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 = 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() );
|
||||
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>();
|
||||
List<ResourceDefinition> enabledOvrlyRscDfns =
|
||||
new ArrayList<ResourceDefinition>();
|
||||
List<ResourceDefinition> disabledOvrlyRscDfns =
|
||||
new ArrayList<ResourceDefinition>();
|
||||
|
||||
NcDisplayType dispType = NcEditorUtil.getNcDisplayType(
|
||||
NcDisplayMngr.getActiveNatlCntrsEditor() );
|
||||
|
@ -72,7 +188,9 @@ public class OverlayMenu extends CompoundContributionItem {
|
|||
return new IContributionItem[0];
|
||||
}
|
||||
|
||||
List<ResourceDefinition> ovrlyRscDfns = ResourceDefnsMngr.getInstance().getResourceDefnsForCategory(
|
||||
List<ResourceDefinition> ovrlyRscDfns =
|
||||
ResourceDefnsMngr.getInstance().
|
||||
getResourceDefnsForCategory(
|
||||
ResourceCategory.OverlayRscCategory, "", dispType,
|
||||
false, true ); // no gen types, include disabled defns.
|
||||
|
||||
|
@ -83,7 +201,7 @@ public class OverlayMenu extends CompoundContributionItem {
|
|||
return 1;
|
||||
}
|
||||
else if( o.getRscImplementation().equals( "Locator" ) ) {
|
||||
return 3;
|
||||
return 2;
|
||||
}
|
||||
else if( o.getRscImplementation().equals( "ScaleOverlay" ) ) {
|
||||
return 3;
|
||||
|
@ -169,28 +287,6 @@ public class OverlayMenu extends CompoundContributionItem {
|
|||
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 ) {
|
||||
List<String> ordFiltList = ResourceDefnsMngr.getInstance().
|
||||
getResourceDefnFilter( ord.getResourceDefnName() ).getFilters();
|
||||
|
@ -205,7 +301,7 @@ public class OverlayMenu extends CompoundContributionItem {
|
|||
return new IContributionItem[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private CommandContributionItem createOverlayMenuItem( ResourceDefinition ovrlyRsc ) {
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
params.put("overlayName", ovrlyRsc.getResourceDefnName() );
|
||||
|
@ -219,5 +315,8 @@ public class OverlayMenu extends CompoundContributionItem {
|
|||
return new CommandContributionItem( param );
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue