Class AbstractGuiseSession
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,com.globalmentor.text.CollatorFactory
,io.clogr.Clogged
,io.csar.Concerned
,GuiseSession
- Direct Known Subclasses:
DefaultGuiseSession
- Author:
- Garret Wilson
-
Field Summary
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
Fields inherited from interface io.guise.framework.GuiseSession
INPUT_STRATEGY_PROPERTY, LOCALE_PROPERTY, ORIENTATION_PROPERTY, PRINCIPAL_PROPERTY, THEME_URI_PROPERTY, TIME_ZONE_PROPERTY
-
Constructor Summary
ConstructorDescriptionAbstractGuiseSession
(GuiseApplication application, Platform platform) Application and platform constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
beginModalNavigation
(ModalNavigationPanel<?> modalNavigationPanel, ModalNavigation modalNavigation) Begins modal interaction for a particular modal panel.void
Removes any requests for navigation.Creates a component to indicate Guise busy status.protected Component
createComponent
(Class<? extends Component> componentClass) Creates the component for the given class.protected InputEvent
createInputEvent
(Input input) Creates an input event for the given input.com.globalmentor.net.URIPath
createTempPublicResource
(String baseName, String extension) Creates a temporary resource available at a public application navigation path but with access restricted to this session.dereferenceString
(String string) Dereferences a string by replacing any string references with a string from the resources.dereferenceURI
(URI uri, String... suffixes) Dereferences a URI by looking up any references from the resources if necessary.void
destroy()
Called when the session is destroyed.boolean
endModalNavigation
(ModalNavigationPanel<?> modalNavigationPanel) Ends modal interaction for a particular modal panel.<C extends io.csar.Concern>
Optional<C>findConcern
(Class<C> configurationClass) protected void
fireNavigated
(Component component, NavigationEvent navigationEvent) Fires aNavigationEvent
to allNavigationListener
s in the given component hierarchy.void
fireNavigated
(URI referrerURI) Fires aNavigationEvent
to allNavigationListener
s in the session application frame hierarchy.Reports the current bookmark relative to the current navigation path.getBooleanResource
(String resourceKey) Retrieves aBoolean
resource from the resource bundle.getBooleanResource
(String resourceKey, Boolean defaultValue) Retrieves aBoolean
resource from the resource bundle, using a specified default if no such resource is available.getBreadcrumb
(com.globalmentor.net.URIPath navigationPath) Retrieves a breadcrumb for a particular navigation path.getBreadcrumbs
(com.globalmentor.net.URIPath navigationPath) Retrieves breadcrumbs for all the segments of a particular navigation path.getColorResource
(String resourceKey) Retrieves aColor
resource from the resource bundle.getColorResource
(String resourceKey, Color defaultValue) Retrieves aColor
resource from the resource bundle, using a specified default if no such resource is available.Reports the current depiction root URI of the session.final URI
getDepictionURI
(com.globalmentor.net.URIPath navigationPath, String... suffixes) Determines the URI to use for depiction based upon a navigation path.getDepictionURI
(URI navigationURI, String... suffixes) Determines the URI to use for depiction based upon a navigation URI.getDestinationComponent
(ComponentDestination destination) Retrieves the component bound to the given destination.getIntegerResource
(String resourceKey) Retrieves anInteger
resource from the resource bundle.getIntegerResource
(String resourceKey, Integer defaultValue) Retrieves anInteger
resource from the resource bundle, using a specified default if no such resource is available.getNavigationComponent
(com.globalmentor.net.URIPath path) Retrieves the component bound to the given application context-relative path.Optional<io.urf.model.UrfResourceDescription>
Returns a description of the resource for the current navigation path and bookmark.Optional<io.urf.model.UrfResourceDescription>
getNavigationDescription
(com.globalmentor.net.URIPath navigationPath, Bookmark bookmark) Returns a description of the resource for the given navigation path and bookmark.com.globalmentor.net.URIPath
Reports the navigation path relative to the application context path.<T> T
getResource
(String resourceKey) Retrieves an object resource from the resource bundle.<T> T
getResource
(String resourceKey, T defaultValue) Retrieves an object resource from the resource bundle, using a specified default if no such resource is available.Retrieves a resource bundle to be used by this session.Determines the name of the site at the current navigation path.getStringResource
(String resourceKey) Retrieves a string resource from the resource bundle.getStringResource
(String resourceKey, String defaultValue) Retrieves a string resource from the resource bundle, using a specified default if no such resource is available.getTheme()
Returns the current session theme.getURIResource
(String resourceKey) Retrieves aURI
resource from the resource bundle.getURIResource
(String resourceKey, URI defaultValue) Retrieves aURI
resource from the resource bundle, using a specified default if no such resource is available.getUUID()
void
Called when the session is initialized.void
initializeComponent
(Component component) Initializes a component, optionally with a description in a TURF resource file.void
initializeComponent
(Component component, InputStream descriptionInputStream) Initializes a component from the contents of an URF description input stream.void
initializeComponentFromResource
(Component component, String resourceKey) Initializes a component with a description in a TURF resource file.boolean
Processes input such as a keystroke, a mouse click, or a command.boolean
void
log
(InformationLevel level, String subject, String predicate, String object, Map<?, ?> parameters, CharSequence comment) Logs the given session-related information.void
Logs the given session-related information with a default log level ofInformationLevel.LOG
.void
navigate
(com.globalmentor.net.URIPath path) Requests navigation to the specified path.void
Requests navigation to the specified path and bookmark.void
Requests navigation to the specified path and bookmark in an identified viewport.void
Requests navigation to the specified path in an identified viewport.void
Requests navigation to the specified URI.void
Requests navigation to the specified URI in an identified viewport.void
navigateModal
(com.globalmentor.net.URIPath path, Bookmark bookmark, ModalNavigationListener modalListener) Requests modal navigation to the specified path and bookmark.void
navigateModal
(com.globalmentor.net.URIPath path, ModalNavigationListener modalListener) Requests modal navigation to the specified path.void
navigateModal
(URI uri, ModalNavigationListener modalListener) Requests modal navigation to the specified URI.void
notify
(Notification... notifications) Notifies the user of one or more notifications to be presented in sequence.protected void
notify
(Notification notification, Runnable afterNotify) Notifies the user of the given notification information, with optional logic to be executed after notification takes place.void
notify
(Runnable afterNotify, Notification... notifications) Notifies the user of one or more notifications to be presented in sequence, with optional logic to be executed after all notifications have taken place.void
Notifies the user of the given error in sequence, with optional logic to be executed after notification takes place.void
Notifies the user of the given errors in sequence.protected ModalNavigation
protected ModalNavigation
protected ModalNavigation
protected void
pushModalNavigation
(ModalNavigation modalNavigation) Pushes the given model navigation onto the top of the stack.releaseDestinationComponent
(ComponentDestination destination) Releases the component bound to the given destination.protected void
Unloads the current resource bundle so that the next call togetResourceBundle()
will load the resource bundle anew.protected <C extends io.csar.Concern>
Optional<C>removeConfiguration
(Class<C> configurationClass) Removes a configuration of the given type.requestLocale
(List<Locale> requestedLocales) Requests that the locale be changed to one of the given locales.resolveURI
(URI uri, String... suffixes) Resolves a URI against the application base path, looking up the URI from the resources if necessary.void
setBookmark
(Bookmark bookmark) Changes the bookmark of the current navigation path.protected <C extends io.csar.Concern>
Optional<C>setConfiguration
(C configuration) Sets the given configuration, associating it with its class.protected <C extends io.csar.Concern>
Optional<C>setConfiguration
(Class<C> configurationClass, C configuration) Sets the given configuration.protected void
setConfigurations
(io.csar.Concern... configurations) Sets the given configurations, associating them with their respective classes.void
setDepictionRootURI
(URI depictionBaseURI) Sets the depiction root URI of the session.void
setInputStrategy
(InputStrategy newInputStrategy) Sets the strategy for processing input.void
Sets the current session locale.void
setLogWriter
(Writer logWriter) Sets the log writer.void
setNavigation
(com.globalmentor.net.URIPath navigationPath, Bookmark bookmark, URI referrerURI) Sets the new navigation path and bookmark, firing a navigation event if appropriate.void
setNavigationPath
(com.globalmentor.net.URIPath navigationPath) Changes the navigation path of the session.void
setOrientation
(Orientation newOrientation) Sets the default orientation.void
setPrincipal
(Principal newPrincipal) Sets the current principal (e.g.void
setThemeURI
(URI newThemeURI) Sets the URI of the session theme.void
setTimeZone
(TimeZone newTimeZone) Sets the current session time zone.Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.clogr.Clogged
getLogger
Methods inherited from interface com.globalmentor.beans.PropertyBindable
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Constructor Details
-
AbstractGuiseSession
Application and platform constructor. The session local will initially be set to the locale of the associated Guise application. No operation must be performed inside the constructor that would require the presence of the Guise session within this thread group.- Parameters:
application
- The Guise application to which this session belongs.platform
- The platform on which this session's objects are depicted.- Throws:
NullPointerException
- if the given application and/or platform isnull
.
-
-
Method Details
-
setConfigurations
protected void setConfigurations(io.csar.Concern... configurations) Sets the given configurations, associating them with their respective classes.- Parameters:
configurations
- The configurations to set.
-
setConfiguration
Sets the given configuration, associating it with its class.- Type Parameters:
C
- The type of configuration being set.- Parameters:
configuration
- The configuration to set.- Returns:
- The configuration previously associated with the same class, if any.
- Throws:
NullPointerException
- if the given configuration isnull
.
-
setConfiguration
protected <C extends io.csar.Concern> Optional<C> setConfiguration(Class<C> configurationClass, C configuration) Sets the given configuration.- Type Parameters:
C
- The type of configuration being set.- Parameters:
configurationClass
- The class with which to associate the configuration.configuration
- The configuration to set.- Returns:
- The configuration previously associated with the given class, if any.
-
findConcern
- Specified by:
findConcern
in interfaceio.csar.Concerned
-
removeConfiguration
Removes a configuration of the given type. If no configuration is associated with the specified type, no action occurs.- Type Parameters:
C
- The type of configuration being removed.- Parameters:
configurationClass
- The class with which the configuration is associated.- Returns:
- The configuration previously associated with the given class, if any.
-
getUUID
- Specified by:
getUUID
in interfaceGuiseSession
- Returns:
- The unique identifier of this session.
-
getApplication
- Specified by:
getApplication
in interfaceGuiseSession
- Returns:
- The Guise application to which this session belongs.
-
getLogWriter
- Specified by:
getLogWriter
in interfaceGuiseSession
- Returns:
- The writer for writing to the log file, which may not be thread-safe.
-
setLogWriter
Description copied from interface:GuiseSession
Sets the log writer.- Specified by:
setLogWriter
in interfaceGuiseSession
- Parameters:
logWriter
- The writer for writing to the log file, which may not be thread-safe.
-
getDepictionRootURI
Description copied from interface:GuiseSession
Reports the current depiction root URI of the session. The depiction root URI is an absolute plain root URI. The session depiction root URI may be different for different sessions, and may not be equal to the application navigation base path resolved to the container's base URI.- Specified by:
getDepictionRootURI
in interfaceGuiseSession
- Returns:
- The depiction root URI currently representing the Guise session.
-
setDepictionRootURI
Description copied from interface:GuiseSession
Sets the depiction root URI of the session. The depiction root URI is an absolute plain root URI.- Specified by:
setDepictionRootURI
in interfaceGuiseSession
- Parameters:
depictionBaseURI
- The new depiction root URI of the session.
-
getDepictionURI
Determines the URI to use for depiction based upon a navigation path. The path will first be dereferenced for the current session and then resolved to the application base path. The resulting URI may not be absolute, but can be made absolute by resolving it against the depiction root URI.This implementation delegates to
getDepictionURI(URI, String...)
.- Specified by:
getDepictionURI
in interfaceGuiseSession
- Parameters:
navigationPath
- The navigation path, which may be absolute or relative to the application.suffixes
- The suffixes, if any, to append to a resource key in a URI reference.- Returns:
- A URI suitable for depiction, deferenced and resolved to the application base path.
- See Also:
-
getDepictionURI
Description copied from interface:GuiseSession
Determines the URI to use for depiction based upon a navigation URI. The URI will first be dereferenced for the current session and then resolved to the application base path. The resulting URI may not be absolute, but can be made absolute by resolving it against the depiction root URI.- Specified by:
getDepictionURI
in interfaceGuiseSession
- Parameters:
navigationURI
- The navigation URI, which may be absolute or have an absolute path or a path relative to the application.suffixes
- The suffixes, if any, to append to a resource key in a URI reference.- Returns:
- A URI suitable for depiction, dereferenced and resolved to the application base path.
- See Also:
-
getApplicationFrame
- Specified by:
getApplicationFrame
in interfaceGuiseSession
- Returns:
- The application frame.
-
getPlatform
- Specified by:
getPlatform
in interfaceGuiseSession
- Returns:
- The platform on which Guise objects are depicted.
-
getInputStrategy
- Specified by:
getInputStrategy
in interfaceGuiseSession
- Returns:
- The strategy for processing input.
-
setInputStrategy
Description copied from interface:GuiseSession
Sets the strategy for processing input. A default input strategy is installed that, if replaced, should be set as the parent of the new input strategy. To handle new types of input, a new input strategy should create the appropriateInputEvent
and dispatch it via the application frame; if the event is not consumed, it should be passed to the parent input strategy. This is a bound property.- Specified by:
setInputStrategy
in interfaceGuiseSession
- Parameters:
newInputStrategy
- The new strategy for processing input.- See Also:
-
getTimeZone
- Specified by:
getTimeZone
in interfaceGuiseSession
- Returns:
- The current session time zone.
-
setTimeZone
Description copied from interface:GuiseSession
Sets the current session time zone. This is a bound property.- Specified by:
setTimeZone
in interfaceGuiseSession
- Parameters:
newTimeZone
- The new session time zone.- See Also:
-
getLocale
- Specified by:
getLocale
in interfaceGuiseSession
- Returns:
- The current session locale.
-
setLocale
Description copied from interface:GuiseSession
Sets the current session locale. The default orientation will be updated if needed to reflect the new locale. This is a bound property.- Specified by:
setLocale
in interfaceGuiseSession
- Parameters:
newLocale
- The new session locale.- See Also:
-
requestLocale
Description copied from interface:GuiseSession
Requests that the locale be changed to one of the given locales. Each of the locales in the list are examined in order, and the first one supported by the application is used. A requested locale is accepted if a more general locale is supported. (i.e.en-US
is accepted ifen
is supported.)- Specified by:
requestLocale
in interfaceGuiseSession
- Parameters:
requestedLocales
- The locales requested, in order of preference.- Returns:
- The accepted locale (which may be a variation of this locale), or
null
if none of the given locales are supported by the application. - See Also:
-
getOrientation
- Specified by:
getOrientation
in interfaceGuiseSession
- Returns:
- The default internationalization orientation of components for this session.
-
setOrientation
Description copied from interface:GuiseSession
Sets the default orientation. This is a bound property- Specified by:
setOrientation
in interfaceGuiseSession
- Parameters:
newOrientation
- The new default internationalization orientation of components for this session.- See Also:
-
getResourceBundle
Description copied from interface:GuiseSession
Retrieves a resource bundle to be used by this session. One of thegetXXXResource()
should be used in preference to using this method directly. If this session does not yet have a resource bundle, one will be created based upon the current theme and locale. The returned resource bundle should only be used temporarily and should not be saved, as the resource bundle may change if the session locale or the application resource bundle base name changes. The resource bundle retrieved will allow hierarchical resolution in the following priority:- Any resource defined by the application.
- Any resource defined by the theme.
- Any resource defined by default by Guise.
- Specified by:
getResourceBundle
in interfaceGuiseSession
- Returns:
- The resource bundle containing the resources for this session, based upon the locale.
- Throws:
MissingResourceException
- if no resource bundle for the application's specified base name can be found or there was an error loading a resource bundle.- See Also:
-
GuiseApplication.loadResourceBundle(Theme, Locale)
GuiseSession.getTheme()
GuiseSession.getLocale()
GuiseSession.getStringResource(String)
GuiseSession.getStringResource(String, String)
GuiseSession.getBooleanResource(String)
GuiseSession.getBooleanResource(String, Boolean)
GuiseSession.getIntegerResource(String)
GuiseSession.getIntegerResource(String, Integer)
GuiseSession.getURIResource(String)
GuiseSession.getURIResource(String, URI)
-
releaseResourceBundle
protected void releaseResourceBundle()Unloads the current resource bundle so that the next call togetResourceBundle()
will load the resource bundle anew. This method also releases the current collator. -
getResource
Description copied from interface:GuiseSession
Retrieves an object resource from the resource bundle. Every resource access method should eventually call this method. This is a preferred convenience method for accessing the resources in the session's resource bundle. This method involves an implicit cast that will throw a class cast exception after the method ends if the resource is not of the expected type.- Specified by:
getResource
in interfaceGuiseSession
- Type Parameters:
T
- The type of the resource.- Parameters:
resourceKey
- The key of the resource to retrieve.- Returns:
- The resource associated with the specified resource key.
- Throws:
MissingResourceException
- if no resource could be found associated with the given key.- See Also:
-
getResource
Description copied from interface:GuiseSession
Retrieves an object resource from the resource bundle, using a specified default if no such resource is available. This is a preferred convenience method for accessing the resources in the session's resource bundle. This method involves an implicit cast that will throw a class cast exception after the method ends if the resource is not of the expected type.- Specified by:
getResource
in interfaceGuiseSession
- Type Parameters:
T
- The type of the resource.- Parameters:
resourceKey
- The key of the resource to retrieve.defaultValue
- The default value to use if there is no resource associated with the given key.- Returns:
- The resource associated with the specified resource key or the default if none is available.
- Throws:
MissingResourceException
- See Also:
-
getStringResource
Description copied from interface:GuiseSession
Retrieves a string resource from the resource bundle. If the resource cannot be found in the resource bundle, it will be loaded from the application's resources, if possible, treating the resource key as a locale-sensitive resource path in the application resource area. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getStringResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve, or a relative path to the resource in the application's resource area.- Returns:
- The resource associated with the specified resource key.
- Throws:
MissingResourceException
- if no resource could be found associated with the given key.- See Also:
-
getStringResource
public String getStringResource(String resourceKey, String defaultValue) throws MissingResourceException Description copied from interface:GuiseSession
Retrieves a string resource from the resource bundle, using a specified default if no such resource is available. If the resource cannot be found in the resource bundle, it will be loaded from the application's resources, if possible, treating the resource key as a locale-sensitive resource path in the application resource area. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getStringResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve, or a relative path to the resource in the application's resource area.defaultValue
- The default value to use if there is no resource associated with the given key.- Returns:
- The resource associated with the specified resource key or the default if none is available.
- Throws:
MissingResourceException
- See Also:
-
getBooleanResource
Description copied from interface:GuiseSession
Retrieves aBoolean
resource from the resource bundle. If the given resource is a string, it will be interpreted according to theBoolean.valueOf(java.lang.String)
rules. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getBooleanResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.- Returns:
- The resource associated with the specified resource key.
- Throws:
MissingResourceException
- if no resource could be found associated with the given key.- See Also:
-
getBooleanResource
public Boolean getBooleanResource(String resourceKey, Boolean defaultValue) throws MissingResourceException Description copied from interface:GuiseSession
Retrieves aBoolean
resource from the resource bundle, using a specified default if no such resource is available. If the given resource is a string, it will be interpreted according to theBoolean.valueOf(java.lang.String)
rules. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getBooleanResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.defaultValue
- The default value to use if there is no resource associated with the given key.- Returns:
- The resource associated with the specified resource key or the default if none is available.
- Throws:
MissingResourceException
- See Also:
-
getColorResource
Description copied from interface:GuiseSession
Retrieves aColor
resource from the resource bundle. If the given resource is a string, it will be resolved and converted to a color usingAbstractModeledColor.valueOf(CharSequence)
. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getColorResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.- Returns:
- The resource associated with the specified resource key.
- Throws:
MissingResourceException
- if no resource could be found associated with the given key.- See Also:
-
getColorResource
public Color getColorResource(String resourceKey, Color defaultValue) throws MissingResourceException Description copied from interface:GuiseSession
Retrieves aColor
resource from the resource bundle, using a specified default if no such resource is available. If the given resource is a string, it will be resolved and converted to a color usingAbstractModeledColor.valueOf(CharSequence)
. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getColorResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.defaultValue
- The default value to use if there is no resource associated with the given key.- Returns:
- The resource associated with the specified resource key or the default if none is available.
- Throws:
MissingResourceException
- See Also:
-
getIntegerResource
Description copied from interface:GuiseSession
Retrieves anInteger
resource from the resource bundle. If the given resource is a string, it will be interpreted according to theInteger.valueOf(java.lang.String)
rules. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getIntegerResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.- Returns:
- The resource associated with the specified resource key.
- Throws:
MissingResourceException
- if no resource could be found associated with the given key.- See Also:
-
getIntegerResource
public Integer getIntegerResource(String resourceKey, Integer defaultValue) throws MissingResourceException Description copied from interface:GuiseSession
Retrieves anInteger
resource from the resource bundle, using a specified default if no such resource is available. If the given resource is a string, it will be interpreted according to theInteger.valueOf(java.lang.String)
rules. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getIntegerResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.defaultValue
- The default value to use if there is no resource associated with the given key.- Returns:
- The resource associated with the specified resource key or the default if none is available.
- Throws:
MissingResourceException
- See Also:
-
getURIResource
Description copied from interface:GuiseSession
Retrieves aURI
resource from the resource bundle. If the given resource is a string, it will be converted to a URI. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getURIResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.- Returns:
- The resource associated with the specified resource key.
- Throws:
MissingResourceException
- if no resource could be found associated with the given key.- See Also:
-
getURIResource
Description copied from interface:GuiseSession
Retrieves aURI
resource from the resource bundle, using a specified default if no such resource is available. If the given resource is a string, it will be converted to a URI. This is a preferred convenience method for accessing the resources in the session's resource bundle.- Specified by:
getURIResource
in interfaceGuiseSession
- Parameters:
resourceKey
- The key of the resource to retrieve.defaultValue
- The default value to use if there is no resource associated with the given key.- Returns:
- The resource associated with the specified resource key or the default if none is available.
- Throws:
MissingResourceException
- See Also:
-
getCollatorInstance
- Specified by:
getCollatorInstance
in interfacecom.globalmentor.text.CollatorFactory
- Specified by:
getCollatorInstance
in interfaceGuiseSession
-
getPrincipal
- Specified by:
getPrincipal
in interfaceGuiseSession
- Returns:
- The current principal (e.g. logged-in user), or
null
if there is no principal authenticated for this session.
-
setPrincipal
Description copied from interface:GuiseSession
Sets the current principal (e.g. logged-in user). This is a bound property.- Specified by:
setPrincipal
in interfaceGuiseSession
- Parameters:
newPrincipal
- The new principal, ornull
if there should be no associated principal (e.g. the user should be logged off).- See Also:
-
getTheme
Description copied from interface:GuiseSession
Returns the current session theme. If this session's theme has not yet been loaded, this method loads the theme.- Specified by:
getTheme
in interfaceGuiseSession
- Returns:
- The current session theme.
- Throws:
IOException
- if there is an error loading the theme.- See Also:
-
getThemeURI
- Specified by:
getThemeURI
in interfaceGuiseSession
- Returns:
- The URI of the session theme, to be resolved against the application base path.
-
setThemeURI
Description copied from interface:GuiseSession
Sets the URI of the session theme. The current theme, if any, will be released and loaded the next timeGuiseSession.getTheme()
is called. This is a bound property.- Specified by:
setThemeURI
in interfaceGuiseSession
- Parameters:
newThemeURI
- The URI of the new session theme.- See Also:
-
getAboutApplicationActionPrototype
- Specified by:
getAboutApplicationActionPrototype
in interfaceGuiseSession
- Returns:
- The action prototype for presenting application information.
-
getDestinationComponent
Description copied from interface:GuiseSession
Retrieves the component bound to the given destination. If a component has already been created and cached, it will be be returned; otherwise, one will be created and cached.- Specified by:
getDestinationComponent
in interfaceGuiseSession
- Parameters:
destination
- The destination for which a component should be returned.- Returns:
- The component bound to the given destination.
-
releaseDestinationComponent
Description copied from interface:GuiseSession
Releases the component bound to the given destination.- Specified by:
releaseDestinationComponent
in interfaceGuiseSession
- Parameters:
destination
- The destination for which any bound component should be released.- Returns:
- The component previously bound to the given destination, or
null
if no component was bound to the given destination.
-
createComponent
Creates the component for the given class.- Parameters:
componentClass
- The class representing the component to create.- Returns:
- The created component.
- Throws:
IllegalStateException
- if the component class does not provide a default constructor, is an interface, is abstract, or throws an exception during instantiation.
-
initializeComponent
Description copied from interface:GuiseSession
Initializes a component, optionally with a description in a TURF resource file. This method first tries to load a PLOOP URF description of the component in a TURF file with the same name as the class file in the same directory, with an.turf
extension. That is, for the classMyComponent.class
this method first tries to loadMyComponent.turf
from the same directory. If this is successful, the component is initialized from this URF description. This implementation callsGuiseSession.initializeComponent(Component, InputStream)
. The component'sComponent.initialize()
is called whether there is an URF description.- Specified by:
initializeComponent
in interfaceGuiseSession
- Parameters:
component
- The component to initialize.- See Also:
-
initializeComponentFromResource
public void initializeComponentFromResource(Component component, String resourceKey) throws com.globalmentor.util.DataException, InvocationTargetException Initializes a component with a description in a TURF resource file. This method callsComponent.initialize()
after initializing the component from the description. This implementation callsGuiseSession.initializeComponent(Component, InputStream)
.This implementation calls
initializeComponent(Component, InputStream)
.- Specified by:
initializeComponentFromResource
in interfaceGuiseSession
- Parameters:
component
- The component to initialize.resourceKey
- The key to a TURF description resource file.- Throws:
com.globalmentor.util.DataException
- if the data was incorrect for component initialization.InvocationTargetException
- if a given resource indicates a Java class the constructor of which throws an exception.- See Also:
-
initializeComponent
public void initializeComponent(Component component, InputStream descriptionInputStream) throws IOException, com.globalmentor.util.DataException, InvocationTargetException Description copied from interface:GuiseSession
Initializes a component from the contents of an URF description input stream. This method callsComponent.initialize()
after initializing the component from the description.- Specified by:
initializeComponent
in interfaceGuiseSession
- Parameters:
component
- The component to initialize.descriptionInputStream
- The input stream containing an URF description.- Throws:
IOException
- if there is an error reading from the input stream.com.globalmentor.util.DataException
- if the data was incorrect for component initialization.InvocationTargetException
- if a given resource indicates a Java class the constructor of which throws an exception.- See Also:
-
getBookmark
Description copied from interface:GuiseSession
Reports the current bookmark relative to the current navigation path.- Specified by:
getBookmark
in interfaceGuiseSession
- Returns:
- The bookmark relative to the current navigation path, or
null
if there is no bookmark specified.
-
setBookmark
Description copied from interface:GuiseSession
Changes the bookmark of the current navigation path. This method does not necessarily cause navigation to occur, but instead "publishes" the bookmark to indicate that it is representative of the current state of the current navigation.- Specified by:
setBookmark
in interfaceGuiseSession
- Parameters:
bookmark
- The bookmark relative to the current navigation path, ornull
if there should be no bookmark.
-
getSiteName
Determines the name of the site at the current navigation path.This version returns
null
.- Specified by:
getSiteName
in interfaceGuiseSession
- Returns:
- The name of the site, or
null
if the site has no name.
-
getBreadcrumb
Retrieves a breadcrumb for a particular navigation path.This implementation uses the name of the resulting depiction URI for the breadcrumb label.
This implementation returns a default breadcrumb; subclasses may override this method and provide customized breadcrumb information.
- Specified by:
getBreadcrumb
in interfaceGuiseSession
- Parameters:
navigationPath
- The navigation path which a breadcrumb should be returned.- Returns:
- A breadcrumb for the given navigation URI.
- See Also:
-
getBreadcrumbs
Retrieves breadcrumbs for all the segments of a particular navigation path. This method delegates toGuiseSession.getBreadcrumb(URIPath)
to create each segment breadcrumb.This method delegates to
getBreadcrumb(URIPath)
to create each segment breadcrumb.- Specified by:
getBreadcrumbs
in interfaceGuiseSession
- Parameters:
navigationPath
- The navigation path which breadcrumbs should be returned.- Returns:
- A list of breadcrumbs for the given navigation URI.
-
initialize
public void initialize()Description copied from interface:GuiseSession
Called when the session is initialized.- Specified by:
initialize
in interfaceGuiseSession
- See Also:
-
destroy
public void destroy()Description copied from interface:GuiseSession
Called when the session is destroyed.- Specified by:
destroy
in interfaceGuiseSession
- See Also:
-
createTempPublicResource
public com.globalmentor.net.URIPath createTempPublicResource(String baseName, String extension) throws IOException Description copied from interface:GuiseSession
Creates a temporary resource available at a public application navigation path but with access restricted to this session. The file will be created in the application's temporary file directory. If the resource is restricted to the current Guise session, the resource will be deleted when the current Guise session ends. This is a convenience method that delegates toGuiseApplication.createTempAsset(String, String, GuiseSession)
.- Specified by:
createTempPublicResource
in interfaceGuiseSession
- Parameters:
baseName
- The base filename to be used in generating the filename.extension
- The extension to use for the temporary file.- Returns:
- A public application navigation path that can be used to access the resource only from this session.
- Throws:
IOException
- if there is a problem creating the public resource.- See Also:
-
createBusyComponent
Description copied from interface:GuiseSession
Creates a component to indicate Guise busy status.- Specified by:
createBusyComponent
in interfaceGuiseSession
- Returns:
- A component to indicate Guise busy status.
- See Also:
-
input
Description copied from interface:GuiseSession
Processes input such as a keystroke, a mouse click, or a command. A newInputEvent
will be created and dispatched via the application frame. If an input event is still not consumed after dispatching, its input is processed by the installed input strategy, if any.- Specified by:
input
in interfaceGuiseSession
- Parameters:
input
- The input to process.- Returns:
true
if the input was consumed and should not be processed further.- See Also:
-
createInputEvent
Creates an input event for the given input.- Parameters:
input
- The input to process.- Returns:
- An event to represent the given input.
- Throws:
NullPointerException
- if the given input isnull
.IllegalArgumentException
- if an unknown input type was given.- See Also:
-
log
public void log(String subject, String predicate, String object, Map<?, ?> parameters, CharSequence comment) Description copied from interface:GuiseSession
Logs the given session-related information with a default log level ofInformationLevel.LOG
. This is a convenience method that delegates toGuiseSession.log(InformationLevel, String, String, String, Map, CharSequence)
.- Specified by:
log
in interfaceGuiseSession
- Parameters:
subject
- The log subject identification, ornull
if there is no related subject.predicate
- The log predicate identification, ornull
if there is no related predicate.object
- The log object identification, ornull
if there is no related object.parameters
- The map of log parameters, ornull
if there are no parameters.comment
- The log comment, ornull
if there is no log comment.
-
log
public void log(InformationLevel level, String subject, String predicate, String object, Map<?, ?> parameters, CharSequence comment) Description copied from interface:GuiseSession
Logs the given session-related information.- Specified by:
log
in interfaceGuiseSession
- Parameters:
level
- The log information level.subject
- The log subject identification, ornull
if there is no related subject.predicate
- The log predicate identification, ornull
if there is no related predicate.object
- The log object identification, ornull
if there is no related object.parameters
- The map of log parameters, ornull
if there are no parameters.comment
- The log comment, ornull
if there is no log comment.
-
notify
Description copied from interface:GuiseSession
Notifies the user of one or more notifications to be presented in sequence. The notification's label and/or icon, if specified, will be used as the dialog title and icon, respectively; if either is not specified, a label and/or icon based upon the notification's severity will be used. If the selected option to any notification is fatal, the remaining notifications will not be performed. The absence of an option selection is considered fatal only if a fatal option was presented for a given notification. This is a convenience method that delegates toGuiseSession.notify(Runnable, Notification...)
.- Specified by:
notify
in interfaceGuiseSession
- Parameters:
notifications
- One or more notification informations to relay.
-
notify
Notifies the user of one or more notifications to be presented in sequence, with optional logic to be executed after all notifications have taken place. The notification's label and/or icon, if specified, will be used as the dialog title and icon, respectively; if either is not specified, a label and/or icon based upon the notification's severity will be used. If the selected option to any notification is fatal, the remaining notifications and the specified logic, if any, will not be performed. The absence of an option selection is considered fatal only if a fatal option was presented for a given notification.This implementation delegates to
notify(Notification, Runnable)
.- Specified by:
notify
in interfaceGuiseSession
- Parameters:
afterNotify
- The code that executes after notification has taken place, ornull
if no action should be taken after notification.notifications
- One or more notification informations to relay.
-
notify
Notifies the user of the given notification information, with optional logic to be executed after notification takes place. The notification's label and/or icon, if specified, will be used as the dialog title and icon, respectively; if either is not specified, a label and/or icon based upon the notification's severity will be used. If the selected option to any notification is fatal, the remaining notifications and the specified logic, if any, will not be performed. The absence of an option selection is considered fatal only if a fatal option was presented for a given notification.- Parameters:
notification
- The notification information to relay.afterNotify
- The code that executes after notification has taken place, ornull
if no action should be taken after notification.
-
notify
Description copied from interface:GuiseSession
Notifies the user of the given errors in sequence. If the selected option to any notification is fatal, the remaining notifications will not be performed. The absence of an option selection is considered fatal only if a fatal option was presented for a given notification. This is a convenience method that delegates toGuiseSession.notify(Runnable, Throwable...)
.- Specified by:
notify
in interfaceGuiseSession
- Parameters:
errors
- The errors with which to notify the user.
-
notify
Description copied from interface:GuiseSession
Notifies the user of the given error in sequence, with optional logic to be executed after notification takes place. If the selected option to any notification is fatal, the remaining notifications and the specified logic, if any, will not be performed. The absence of an option selection is considered fatal only if a fatal option was presented for a given notification. This is a convenience method that delegates toGuiseSession.notify(Runnable, Notification...)
.- Specified by:
notify
in interfaceGuiseSession
- Parameters:
afterNotify
- The code that executes after notification has taken place, ornull
if no action should be taken after notification.errors
- The errors with which to notify the user.
-
dereferenceString
Description copied from interface:GuiseSession
Dereferences a string by replacing any string references with a string from the resources. A string reference begins with the Start of String (SOS
) control character (U+0098) and ends with a String Terminator (ST
) control character (U+009C). The string between these delimiters will be used to look up a string resource usingGuiseSession.getStringResource(String)
. Strings retrieved from resources will be recursively dereferenced.String references appearing between an
SOS
/ST
pair that that begin with the character '=' will be considered string values and, after they are recursively dereferenced, will be applied as formatting arguments to the remaining dereferenced text usingMessageFormat.format(String, Object...)
.- Specified by:
dereferenceString
in interfaceGuiseSession
- Parameters:
string
- The string to be dereferenced.- Returns:
- The dereferenced string with any string references replaced with the appropriate string from the resources.
- Throws:
MissingResourceException
- if no resource could be found associated with a string reference.- See Also:
-
dereferenceURI
Description copied from interface:GuiseSession
Dereferences a URI by looking up any references from the resources if necessary. If the URI has the "resource" scheme, its scheme-specific part will be used to look up the actual URI usingGuiseSession.getURIResource(String)
. If suffixes are given, they will be appended to the resource key in order, separated by '.'. If no resource is associated with that resource key, a resource will be retrieved using the unadorned resource key. URIs retrieved from resources will be recursively dereferenced without suffixes.- Specified by:
dereferenceURI
in interfaceGuiseSession
- Parameters:
uri
- The URI to be dereferenced.suffixes
- The suffixes, if any, to append to a resource key in a URI reference.- Returns:
- The URI dereferenced from the resources.
- Throws:
MissingResourceException
- if no resource could be found associated with a string reference.- See Also:
-
resolveURI
Description copied from interface:GuiseSession
Resolves a URI against the application base path, looking up the URI from the resources if necessary. The URI will be dereferenced before it is resolved. Relative paths will be resolved relative to the application base path. Absolute paths will be considered already resolved, as will absolute URIs. For an application base path "/path/to/application/", resolving "relative/path" will yield "/path/to/application/relative/path", while resolving "/absolute/path" will yield "/absolute/path". Resolving "http://example.com/path" will yield "http://example.com/path".- Specified by:
resolveURI
in interfaceGuiseSession
- Parameters:
uri
- The URI to be resolved.suffixes
- The suffixes, if any, to append to a resource key in a URI reference.- Returns:
- The uri resolved against resources the application base path.
- Throws:
MissingResourceException
- if no resource could be found associated with a string reference.- See Also:
-