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 class
This non-API class is public as an implementation detail.static class
This non-API class is public as an implementation detail.static enum
Provides a hint togetSelectedProduct(SelectionSourceHint)
} which selection provider should be used as primary selection sourcestatic class
This non-API class is public as an implementation detail.static class
This non-API class is public as an implementation detail.static class
This non-API class is public as an implementation detail. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets anAppContext
representation of the SNAP application.static SnapApp
Gets the SNAP application singleton which provides access to various SNAP APIs and resources.eu.esa.snap.netbeans.docwin.DocumentWindowManager
Gets 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 aSelectionSupport
instance for object selections.org.openide.awt.UndoRedo.Manager
getUndoManager
(Product product) void
handleError
(String message, Throwable t) Handles an error.void
Called if SNAP is showing on the user's desktop.void
onStart()
Called if SNAP starts up.void
onStop()
Called if SNAP shuts down.boolean
Called if SNAP is about to shut down.void
setStatusBarMessage
(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 aSelectionSupport
instance 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
hint
defines what is the primary and secondary selection source. Source is either thescene view
or theproduct explorer
. If it is set toSnapApp.SelectionSourceHint.AUTO
the 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
hint
defines what is the primary and secondary selection source. Source is either thescene view
or theproduct explorer
. If it is set toSnapApp.SelectionSourceHint.AUTO
the 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 anAppContext
representation of the SNAP application.Its main use is to provide compatibility for SNAP heritage GUI code (from BEAM invalid input: '&' NEST) which used the
AppContext
interface.- Returns:
- An
AppContext
representation 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 immediatelyfalse
if the super call returnsfalse
.- Returns:
false
if the shutdown process shall be cancelled immediately.true
, if it is ok to continue shut down.
-