Class SnapApp
SnapApp is a facade for SNAP Desktop applications. There is only a single instance of
a SNAP application which is retrieved by
SnapApp app = SnapApp.getDefault();
SnapApp is the main entry point for most SNAP Desktop extensions. An extension might want to be informed
about selection changes in the application. Here are some examples:
app.getSelectionSupport(Product.class).addHandler(myProductSelectionHandler);
app.getSelectionSupport(ProductNode.class).addHandler(myProductNodeSelectionHandler);
app.getSelectionSupport(RasterDataNode.class).addHandler(myRasterDataNodeSelectionHandler);
app.getSelectionSupport(ProductSceneView.class).addHandler(myViewSelectionHandler);
Or might want to retrieve the currently selected objects:
Product product = app.getSelectedProduct();
ProductNode productNode = getSelectedProductNode();
ProductSceneView view = app.getSelectedProductSceneView();
// For any other type of selected object, use:
Figure figure = Utilities.actionsGlobalContext().lookup(Figure.class);
If you want to alter the behaviour of the default implementation of the SNAP Desktop application, then register your derived class as a service using
@ServiceProvider(service = MoonApp.class, supersedes = "SnapApp")
public class MoonApp extends SnapApp {
...
}
- Since:
- 2.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThis non-API class is public as an implementation detail.static classThis non-API class is public as an implementation detail.static enumProvides a hint togetSelectedProduct(SelectionSourceHint)} which selection provider should be used as primary selection sourcestatic classThis non-API class is public as an implementation detail.static classThis non-API class is public as an implementation detail.static classThis non-API class is public as an implementation detail. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets anAppContextrepresentation of the SNAP application.static SnapAppGets the SNAP application singleton which provides access to various SNAP APIs and resources.eu.esa.snap.netbeans.docwin.DocumentWindowManagerGets SNAP's global document window manager.Gets SNAP's global data product manager.Return the currently selected product.Return the currently selected product node.<T> SelectionSupport<T> getSelectionSupport(Class<T> type) Provides aSelectionSupportinstance for object selections.org.openide.awt.UndoRedo.ManagergetUndoManager(Product product) voidhandleError(String message, Throwable t) Handles an error.voidCalled if SNAP is showing on the user's desktop.voidonStart()Called if SNAP starts up.voidonStop()Called if SNAP shuts down.booleanCalled if SNAP is about to shut down.voidsetStatusBarMessage(String message) Sets the current status bar message.
-
Constructor Details
-
SnapApp
public SnapApp()Constructor.As this class is a registered service, the constructor is not supposed to be called directly.
-
-
Method Details
-
getDefault
Gets the SNAP application singleton which provides access to various SNAP APIs and resources.The the method basically returns
Lookup.getDefault().lookup(SnapApp.class)- Returns:
- The SNAP applications global singleton instance.
-
getDocumentWindowManager
public eu.esa.snap.netbeans.docwin.DocumentWindowManager getDocumentWindowManager()Gets SNAP's global document window manager. Use it to open your own document windows, or register a listener to be notified on window events such as opening, closing, selection, deselection.- Returns:
- SNAP's global document window manager.
-
getProductManager
Gets SNAP's global data product manager. Use it to add your own data product instances, or register a listener to be notified on product addition and removal events.- Returns:
- SNAP's global product manager.
-
getUndoManager
- Returns:
- SNAP's global undo / redo manager.
-
getMainFrame
- Returns:
- SNAP's main frame window.
-
setStatusBarMessage
Sets the current status bar message.- Parameters:
message- The new status bar message.
-
getInstanceName
- Returns:
- The SNAP application's name. The default is
"SNAP".
-
getPreferences
- Returns:
- The user's application preferences.
-
getLogger
- Returns:
- The SNAP logger.
-
handleError
Handles an error.- Parameters:
message- An error message.t- An exception ornull.
-
getSelectionSupport
Provides aSelectionSupportinstance for object selections.- Parameters:
type- The type of selected objects whose selection state to observe.- Returns:
- A selection support instance for the given object type, or
null.
-
getSelectedProductSceneView
- Returns:
- The currently selected product scene view, or
null.
-
getSelectedProductNode
Return the currently selected product node.The
hintdefines what is the primary and secondary selection source. Source is either thescene viewor theproduct explorer. If it is set toSnapApp.SelectionSourceHint.AUTOthe algorithm tries to make a good guess, checking which component has the focus.- Returns:
- The currently selected product node, or
null.
-
getSelectedProduct
Return the currently selected product.The
hintdefines what is the primary and secondary selection source. Source is either thescene viewor theproduct explorer. If it is set toSnapApp.SelectionSourceHint.AUTOthe algorithm tries to make a good guess, checking which component has the focus.- Parameters:
hint- gives a hint to the implementation which selection source should be preferred.- Returns:
- The currently selected product or
null.
-
getAppContext
Gets anAppContextrepresentation of the SNAP application.Its main use is to provide compatibility for SNAP heritage GUI code (from BEAM invalid input: '&' NEST) which used the
AppContextinterface.- Returns:
- An
AppContextrepresentation of thisSnapApp.
-
onStart
public void onStart()Called if SNAP starts up. The method is not supposed to be called by clients directly.Overrides should call
super.onStart()as a first step unless they know what they are doing. -
onStop
public void onStop()Called if SNAP shuts down. The method is not supposed to be called by clients directly.Overrides should call
super.onStop()in a final step unless they know what they are doing. -
onShowing
public void onShowing()Called if SNAP is showing on the user's desktop. The method is not supposed to be called by clients directly.Overrides should call
super.onShowing()as a first step unless they know whet they are doing. -
onTryStop
public boolean onTryStop()Called if SNAP is about to shut down. The method is not supposed to be called by clients directly.Overrides should call
super.onTryStop()()unless they know whet they are doing. The method should return immediatelyfalseif the super call returnsfalse.- Returns:
falseif the shutdown process shall be cancelled immediately.true, if it is ok to continue shut down.
-