overlay menu now toggling but still setChecked() is not taking because of simple vs full resource definition name

This commit is contained in:
AWIPS User 2015-01-16 10:25:28 -07:00
parent 164b32b54b
commit 68a3592fad
3 changed files with 160 additions and 71 deletions

View file

@ -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;
}
}

View file

@ -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,

View file

@ -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 );
}
*/
}