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) { 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,9 +124,10 @@ 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
if (rpe.getResource() != null && rpe.getResource().getName() != null if (rpe.getResource() != null && rpe.getResource().getName() != null
@ -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,58 +166,45 @@ 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) {
return; return;
} }
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")));
}
}
protected IDisplayPane[] getSelectedPanes(IDisplayPaneContainer editor) {
IDisplayPane[] displayPanes = editor.getDisplayPanes();
if (editor instanceof IMultiPaneEditor) { for (ResourcePair rscName : descriptor.getResourceList() ) {
IDisplayPane selected = ((IMultiPaneEditor) editor)
.getSelectedPane(IMultiPaneEditor.LOAD_ACTION); System.out.println("getResource().getName(): " + rscName.getResource().getName());
if (selected != null) { System.out.println("ResourceOverlayName: " + ResourceOverlayName);
displayPanes = new IDisplayPane[] { selected }; 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 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,

View file

@ -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;
/** /**
@ -55,16 +58,129 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
* @version 1 * @version 1
*/ */
public class OverlayMenu extends CompoundContributionItem { 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 @Override
protected IContributionItem[] getContributionItems() { protected IContributionItem[] getContributionItems() {
IMenuManager ovrlyMenuMngr = new MenuManager( "Overlays", OverlayMenu.class.getName() ); IMenuManager ovrlyMenuMngr = new MenuManager( "Overlays",
OverlayMenu.class.getName() );
try { try {
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> enabledOvrlyRscDfns =
List<ResourceDefinition> disabledOvrlyRscDfns = new ArrayList<ResourceDefinition>(); new ArrayList<ResourceDefinition>();
List<ResourceDefinition> disabledOvrlyRscDfns =
new ArrayList<ResourceDefinition>();
NcDisplayType dispType = NcEditorUtil.getNcDisplayType( NcDisplayType dispType = NcEditorUtil.getNcDisplayType(
NcDisplayMngr.getActiveNatlCntrsEditor() ); NcDisplayMngr.getActiveNatlCntrsEditor() );
@ -72,7 +188,9 @@ public class OverlayMenu extends CompoundContributionItem {
return new IContributionItem[0]; return new IContributionItem[0];
} }
List<ResourceDefinition> ovrlyRscDfns = ResourceDefnsMngr.getInstance().getResourceDefnsForCategory( 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();
@ -205,7 +301,7 @@ public class OverlayMenu extends CompoundContributionItem {
return new IContributionItem[0]; return new IContributionItem[0];
} }
} }
private CommandContributionItem createOverlayMenuItem( ResourceDefinition ovrlyRsc ) { private CommandContributionItem createOverlayMenuItem( ResourceDefinition ovrlyRsc ) {
Map<String, String> params = new HashMap<String, String>(); Map<String, String> params = new HashMap<String, String>();
params.put("overlayName", ovrlyRsc.getResourceDefnName() ); params.put("overlayName", ovrlyRsc.getResourceDefnName() );
@ -219,5 +315,8 @@ public class OverlayMenu extends CompoundContributionItem {
return new CommandContributionItem( param ); return new CommandContributionItem( param );
} }
*/
} }