Class SnapApp
- java.lang.Object
-
- org.esa.snap.rcp.SnapApp
-
public class SnapApp extends Object
The classSnapApp
is a facade for SNAP Desktop applications. There is only a single instance of a SNAP application which is retrieved bySnapApp 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:
SelectionSupport
,SelectionSupport.Handler
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SnapApp.ActionContextExtender
This non-API class is public as an implementation detail.static class
SnapApp.MaybeStopOp
This non-API class is public as an implementation detail.static class
SnapApp.SelectionSourceHint
Provides a hint togetSelectedProduct(SelectionSourceHint)
} which selection provider should be used as primary selection sourcestatic class
SnapApp.ShowingOp
This non-API class is public as an implementation detail.static class
SnapApp.StartOp
This non-API class is public as an implementation detail.static class
SnapApp.StopOp
This non-API class is public as an implementation detail.
-
Constructor Summary
Constructors Constructor Description SnapApp()
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AppContext
getAppContext()
Gets anAppContext
representation of the SNAP application.static SnapApp
getDefault()
Gets the SNAP application singleton which provides access to various SNAP APIs and resources.eu.esa.snap.netbeans.docwin.DocumentWindowManager
getDocumentWindowManager()
Gets SNAP's global document window manager.String
getInstanceName()
Logger
getLogger()
Frame
getMainFrame()
Preferences
getPreferences()
ProductManager
getProductManager()
Gets SNAP's global data product manager.Product
getSelectedProduct(SnapApp.SelectionSourceHint hint)
Return the currently selected product.ProductNode
getSelectedProductNode(SnapApp.SelectionSourceHint hint)
Return the currently selected product node.ProductSceneView
getSelectedProductSceneView()
<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
onShowing()
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
onTryStop()
Called if SNAP is about to shut down.void
setStatusBarMessage(String message)
Sets the current status bar message.
-
-
-
Method Detail
-
getDefault
public static SnapApp 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
public ProductManager 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
public org.openide.awt.UndoRedo.Manager getUndoManager(Product product)
- Returns:
- SNAP's global undo / redo manager.
-
getMainFrame
public Frame getMainFrame()
- Returns:
- SNAP's main frame window.
-
setStatusBarMessage
public void setStatusBarMessage(String message)
Sets the current status bar message.- Parameters:
message
- The new status bar message.
-
getInstanceName
public String getInstanceName()
- Returns:
- The SNAP application's name. The default is
"SNAP"
.
-
getPreferences
public Preferences getPreferences()
- Returns:
- The user's application preferences.
-
getLogger
public Logger getLogger()
- Returns:
- The SNAP logger.
-
handleError
public void handleError(String message, Throwable t)
Handles an error.- Parameters:
message
- An error message.t
- An exception ornull
.
-
getSelectionSupport
public <T> SelectionSupport<T> getSelectionSupport(Class<T> type)
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
public ProductSceneView getSelectedProductSceneView()
- Returns:
- The currently selected product scene view, or
null
.
-
getSelectedProductNode
public ProductNode getSelectedProductNode(SnapApp.SelectionSourceHint hint)
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
public Product getSelectedProduct(SnapApp.SelectionSourceHint hint)
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
public AppContext getAppContext()
Gets anAppContext
representation of the SNAP application.Its main use is to provide compatibility for SNAP heritage GUI code (from BEAM & 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.
-
-