Class Theme

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<Rule>, java.util.Collection<Rule>, java.util.List<Rule>, java.util.RandomAccess

    public class Theme
    extends java.util.ArrayList<Rule>
    Guise theme specification.
    Author:
    Garret Wilson
    See Also:
    Serialized Form
    • Field Detail

      • NAME_EXTENSION

        public static final java.lang.String NAME_EXTENSION
        The extension for Guise theme resource names.
        See Also:
        Constant Field Values
      • CONTENT_TYPE

        public static final com.globalmentor.net.ContentType CONTENT_TYPE
        The content type for theme resources: application/theme+turf.
      • THEME_NAMESPACE_PREFIX

        public static final java.lang.String THEME_NAMESPACE_PREFIX
        The recommended prefix to the theme ontology namespace.
        See Also:
        Constant Field Values
      • THEME_NAMESPACE_URI

        public static final java.net.URI THEME_NAMESPACE_URI
        The URI to the theme ontology namespace.
      • PARENT_URI_PROPERTY_URI

        public static final java.net.URI PARENT_URI_PROPERTY_URI
        The property for the URI of the theme's parent.
      • RESOURCES_PROPERTY_URI

        public static final java.net.URI RESOURCES_PROPERTY_URI
        The resources property name.
      • COLOR_SELECTED_BACKGROUND

        public static final Color COLOR_SELECTED_BACKGROUND
      • LABEL_ABOUT

        public static final java.lang.String LABEL_ABOUT
      • LABEL_ABOUT_X

        public static final java.lang.String LABEL_ABOUT_X
      • LABEL_ACCEPT

        public static final java.lang.String LABEL_ACCEPT
      • LABEL_ACCESS

        public static final java.lang.String LABEL_ACCESS
      • LABEL_ACCESS_X

        public static final java.lang.String LABEL_ACCESS_X
      • LABEL_ADD

        public static final java.lang.String LABEL_ADD
      • LABEL_ADD_X

        public static final java.lang.String LABEL_ADD_X
      • LABEL_AUDIO

        public static final java.lang.String LABEL_AUDIO
      • LABEL_BROWSE

        public static final java.lang.String LABEL_BROWSE
      • LABEL_CALENDAR

        public static final java.lang.String LABEL_CALENDAR
      • LABEL_CANCEL

        public static final java.lang.String LABEL_CANCEL
      • LABEL_CLOSE

        public static final java.lang.String LABEL_CLOSE
      • LABEL_CONFIRM

        public static final java.lang.String LABEL_CONFIRM
      • LABEL_DATE

        public static final java.lang.String LABEL_DATE
      • LABEL_DEFAULT

        public static final java.lang.String LABEL_DEFAULT
      • LABEL_DELETE

        public static final java.lang.String LABEL_DELETE
      • LABEL_DELETE_X

        public static final java.lang.String LABEL_DELETE_X
      • LABEL_DOWNLOAD

        public static final java.lang.String LABEL_DOWNLOAD
      • LABEL_EDIT

        public static final java.lang.String LABEL_EDIT
      • LABEL_EMAIL

        public static final java.lang.String LABEL_EMAIL
      • LABEL_ERROR

        public static final java.lang.String LABEL_ERROR
      • LABEL_FINISH

        public static final java.lang.String LABEL_FINISH
      • LABEL_FIRST

        public static final java.lang.String LABEL_FIRST
      • LABEL_FOLDER

        public static final java.lang.String LABEL_FOLDER
      • LABEL_GENERAL

        public static final java.lang.String LABEL_GENERAL
      • LABEL_HELP

        public static final java.lang.String LABEL_HELP
      • LABEL_HOME

        public static final java.lang.String LABEL_HOME
      • LABEL_IMAGE

        public static final java.lang.String LABEL_IMAGE
      • LABEL_INSERT

        public static final java.lang.String LABEL_INSERT
      • LABEL_JOIN

        public static final java.lang.String LABEL_JOIN
      • LABEL_JOIN_X

        public static final java.lang.String LABEL_JOIN_X
      • LABEL_LAST

        public static final java.lang.String LABEL_LAST
      • LABEL_LOGIN

        public static final java.lang.String LABEL_LOGIN
      • LABEL_LOGOUT

        public static final java.lang.String LABEL_LOGOUT
      • LABEL_LOWER

        public static final java.lang.String LABEL_LOWER
      • LABEL_MISSING

        public static final java.lang.String LABEL_MISSING
      • LABEL_NEXT

        public static final java.lang.String LABEL_NEXT
      • LABEL_NEW

        public static final java.lang.String LABEL_NEW
      • LABEL_NEW_X

        public static final java.lang.String LABEL_NEW_X
      • LABEL_ORDER

        public static final java.lang.String LABEL_ORDER
      • LABEL_PASSWORD

        public static final java.lang.String LABEL_PASSWORD
      • LABEL_PASSWORD_VERIFICATION

        public static final java.lang.String LABEL_PASSWORD_VERIFICATION
      • LABEL_PREVIOUS

        public static final java.lang.String LABEL_PREVIOUS
      • LABEL_PRODUCT_JAVA

        public static final java.lang.String LABEL_PRODUCT_JAVA
      • LABEL_PROPERTIES

        public static final java.lang.String LABEL_PROPERTIES
      • LABEL_X_PROPERTIES

        public static final java.lang.String LABEL_X_PROPERTIES
      • LABEL_RAISE

        public static final java.lang.String LABEL_RAISE
      • LABEL_READ

        public static final java.lang.String LABEL_READ
      • LABEL_REFRESH

        public static final java.lang.String LABEL_REFRESH
      • LABEL_REJECT

        public static final java.lang.String LABEL_REJECT
      • LABEL_REMOVE

        public static final java.lang.String LABEL_REMOVE
      • LABEL_RENAME

        public static final java.lang.String LABEL_RENAME
      • LABEL_RENAME_X

        public static final java.lang.String LABEL_RENAME_X
      • LABEL_RESOURCE

        public static final java.lang.String LABEL_RESOURCE
      • LABEL_RETRY

        public static final java.lang.String LABEL_RETRY
      • LABEL_SAVE

        public static final java.lang.String LABEL_SAVE
      • LABEL_SORT

        public static final java.lang.String LABEL_SORT
      • LABEL_START

        public static final java.lang.String LABEL_START
      • LABEL_STOP

        public static final java.lang.String LABEL_STOP
      • LABEL_SUBMIT

        public static final java.lang.String LABEL_SUBMIT
      • LABEL_SUBTRACT

        public static final java.lang.String LABEL_SUBTRACT
      • LABEL_TIME

        public static final java.lang.String LABEL_TIME
      • LABEL_TOTAL

        public static final java.lang.String LABEL_TOTAL
      • LABEL_TYPE

        public static final java.lang.String LABEL_TYPE
      • LABEL_UNKNOWN

        public static final java.lang.String LABEL_UNKNOWN
      • LABEL_UPLOAD

        public static final java.lang.String LABEL_UPLOAD
      • LABEL_UPLOAD_TO_X

        public static final java.lang.String LABEL_UPLOAD_TO_X
      • LABEL_URI

        public static final java.lang.String LABEL_URI
      • LABEL_USERNAME

        public static final java.lang.String LABEL_USERNAME
      • LABEL_VERIFTY

        public static final java.lang.String LABEL_VERIFTY
      • LABEL_VERSION

        public static final java.lang.String LABEL_VERSION
      • LABEL_VIEW

        public static final java.lang.String LABEL_VIEW
      • ICON_ABOUT

        public static final java.net.URI ICON_ABOUT
      • ICON_ERROR

        public static final java.net.URI ICON_ERROR
      • ICON_HELP

        public static final java.net.URI ICON_HELP
      • ICON_INFO

        public static final java.net.URI ICON_INFO
      • ICON_QUESTION

        public static final java.net.URI ICON_QUESTION
      • ICON_STOP

        public static final java.net.URI ICON_STOP
      • ICON_WARN

        public static final java.net.URI ICON_WARN
      • GLYPH_ABOUT

        public static final java.net.URI GLYPH_ABOUT
      • GLYPH_ACCEPT

        public static final java.net.URI GLYPH_ACCEPT
      • GLYPH_ACCEPT_MULTIPLE

        public static final java.net.URI GLYPH_ACCEPT_MULTIPLE
      • GLYPH_ACCESS

        public static final java.net.URI GLYPH_ACCESS
      • GLYPH_ADD

        public static final java.net.URI GLYPH_ADD
      • GLYPH_ANIMATION

        public static final java.net.URI GLYPH_ANIMATION
      • GLYPH_ARROW_DOWN

        public static final java.net.URI GLYPH_ARROW_DOWN
      • GLYPH_ARROW_LEFT

        public static final java.net.URI GLYPH_ARROW_LEFT
      • GLYPH_ARROW_RIGHT

        public static final java.net.URI GLYPH_ARROW_RIGHT
      • GLYPH_ARROW_UP

        public static final java.net.URI GLYPH_ARROW_UP
      • GLYPH_AUDIO

        public static final java.net.URI GLYPH_AUDIO
      • GLYPH_BLANK

        public static final java.net.URI GLYPH_BLANK
      • GLYPH_BROWSE

        public static final java.net.URI GLYPH_BROWSE
      • GLYPH_BUSY

        public static final java.net.URI GLYPH_BUSY
      • GLYPH_CALENDAR

        public static final java.net.URI GLYPH_CALENDAR
      • GLYPH_CANCEL

        public static final java.net.URI GLYPH_CANCEL
      • GLYPH_CLOSE

        public static final java.net.URI GLYPH_CLOSE
      • GLYPH_CONFIRM

        public static final java.net.URI GLYPH_CONFIRM
      • GLYPH_DELETE

        public static final java.net.URI GLYPH_DELETE
      • GLYPH_DOCUMENT

        public static final java.net.URI GLYPH_DOCUMENT
      • GLYPH_DOCUMENT_BROKEN

        public static final java.net.URI GLYPH_DOCUMENT_BROKEN
      • GLYPH_DOCUMENT_CONTENT

        public static final java.net.URI GLYPH_DOCUMENT_CONTENT
      • GLYPH_DOCUMENT_NEW

        public static final java.net.URI GLYPH_DOCUMENT_NEW
      • GLYPH_DOCUMENT_PREVIEW

        public static final java.net.URI GLYPH_DOCUMENT_PREVIEW
      • GLYPH_DOCUMENT_RICH_CONTENT

        public static final java.net.URI GLYPH_DOCUMENT_RICH_CONTENT
      • GLYPH_DOCUMENT_STACK

        public static final java.net.URI GLYPH_DOCUMENT_STACK
      • GLYPH_DOWNLOAD

        public static final java.net.URI GLYPH_DOWNLOAD
      • GLYPH_EDIT

        public static final java.net.URI GLYPH_EDIT
      • GLYPH_EMAIL

        public static final java.net.URI GLYPH_EMAIL
      • GLYPH_ENTER

        public static final java.net.URI GLYPH_ENTER
      • GLYPH_ERROR

        public static final java.net.URI GLYPH_ERROR
      • GLYPH_EXIT

        public static final java.net.URI GLYPH_EXIT
      • GLYPH_EXCLAMATION

        public static final java.net.URI GLYPH_EXCLAMATION
      • GLYPH_EYEGLASSES

        public static final java.net.URI GLYPH_EYEGLASSES
      • GLYPH_FINISH

        public static final java.net.URI GLYPH_FINISH
      • GLYPH_FIRST

        public static final java.net.URI GLYPH_FIRST
      • GLYPH_FOLDER

        public static final java.net.URI GLYPH_FOLDER
      • GLYPH_FOLDER_CLOSED

        public static final java.net.URI GLYPH_FOLDER_CLOSED
      • GLYPH_FOLDER_OPEN

        public static final java.net.URI GLYPH_FOLDER_OPEN
      • GLYPH_FOLDER_RICH_CONTENT

        public static final java.net.URI GLYPH_FOLDER_RICH_CONTENT
      • GLYPH_FOLDER_TREE

        public static final java.net.URI GLYPH_FOLDER_TREE
      • GLYPH_HELP

        public static final java.net.URI GLYPH_HELP
      • GLYPH_HIDE

        public static final java.net.URI GLYPH_HIDE
      • GLYPH_HIERARCHY

        public static final java.net.URI GLYPH_HIERARCHY
      • GLYPH_HOME

        public static final java.net.URI GLYPH_HOME
      • GLYPH_IMAGE

        public static final java.net.URI GLYPH_IMAGE
      • GLYPH_INFO

        public static final java.net.URI GLYPH_INFO
      • GLYPH_INSERT

        public static final java.net.URI GLYPH_INSERT
      • GLYPH_JOIN

        public static final java.net.URI GLYPH_JOIN
      • GLYPH_KEY

        public static final java.net.URI GLYPH_KEY
      • GLYPH_LAST

        public static final java.net.URI GLYPH_LAST
      • GLYPH_LIST

        public static final java.net.URI GLYPH_LIST
      • GLYPH_LOCK_CLOSED

        public static final java.net.URI GLYPH_LOCK_CLOSED
      • GLYPH_LOCK_OPEN

        public static final java.net.URI GLYPH_LOCK_OPEN
      • GLYPH_LOGIN

        public static final java.net.URI GLYPH_LOGIN
      • GLYPH_LOGOUT

        public static final java.net.URI GLYPH_LOGOUT
      • GLYPH_MEDIA_ADVANCE

        public static final java.net.URI GLYPH_MEDIA_ADVANCE
      • GLYPH_MEDIA_NEXT

        public static final java.net.URI GLYPH_MEDIA_NEXT
      • GLYPH_MEDIA_PAUSE

        public static final java.net.URI GLYPH_MEDIA_PAUSE
      • GLYPH_MEDIA_PLAY

        public static final java.net.URI GLYPH_MEDIA_PLAY
      • GLYPH_MEDIA_PREVIOUS

        public static final java.net.URI GLYPH_MEDIA_PREVIOUS
      • GLYPH_MEDIA_RECEDE

        public static final java.net.URI GLYPH_MEDIA_RECEDE
      • GLYPH_MEDIA_RECORD

        public static final java.net.URI GLYPH_MEDIA_RECORD
      • GLYPH_MEDIA_STOP

        public static final java.net.URI GLYPH_MEDIA_STOP
      • GLYPH_MISSING

        public static final java.net.URI GLYPH_MISSING
      • GLYPH_MUSIC

        public static final java.net.URI GLYPH_MUSIC
      • GLYPH_NEXT

        public static final java.net.URI GLYPH_NEXT
      • GLYPH_ORDER

        public static final java.net.URI GLYPH_ORDER
      • GLYPH_PASSWORD

        public static final java.net.URI GLYPH_PASSWORD
      • GLYPH_PICTURE

        public static final java.net.URI GLYPH_PICTURE
      • GLYPH_POLYGON_CURVED

        public static final java.net.URI GLYPH_POLYGON_CURVED
      • GLYPH_POLYGON_POINTS

        public static final java.net.URI GLYPH_POLYGON_POINTS
      • GLYPH_PREVIEW

        public static final java.net.URI GLYPH_PREVIEW
      • GLYPH_PREVIOUS

        public static final java.net.URI GLYPH_PREVIOUS
      • GLYPH_PRODUCT_JAVA

        public static final java.net.URI GLYPH_PRODUCT_JAVA
      • GLYPH_PROPERTIES

        public static final java.net.URI GLYPH_PROPERTIES
      • GLYPH_QUESTION

        public static final java.net.URI GLYPH_QUESTION
      • GLYPH_REFRESH

        public static final java.net.URI GLYPH_REFRESH
      • GLYPH_REMOVE

        public static final java.net.URI GLYPH_REMOVE
      • GLYPH_REJECT

        public static final java.net.URI GLYPH_REJECT
      • GLYPH_REJECT_MULTIPLE

        public static final java.net.URI GLYPH_REJECT_MULTIPLE
      • GLYPH_RENAME

        public static final java.net.URI GLYPH_RENAME
      • GLYPH_RESOURCE

        public static final java.net.URI GLYPH_RESOURCE
      • GLYPH_RETRY

        public static final java.net.URI GLYPH_RETRY
      • GLYPH_SAVE

        public static final java.net.URI GLYPH_SAVE
      • GLYPH_SELECTED

        public static final java.net.URI GLYPH_SELECTED
      • GLYPH_SORT

        public static final java.net.URI GLYPH_SORT
      • GLYPH_SPEECH_BUBBLE

        public static final java.net.URI GLYPH_SPEECH_BUBBLE
      • GLYPH_SPEECH_BUBBLE_TEXT

        public static final java.net.URI GLYPH_SPEECH_BUBBLE_TEXT
      • GLYPH_SPEECH_BUBBLE_TEXT_ADD

        public static final java.net.URI GLYPH_SPEECH_BUBBLE_TEXT_ADD
      • GLYPH_START

        public static final java.net.URI GLYPH_START
      • GLYPH_STOP

        public static final java.net.URI GLYPH_STOP
      • GLYPH_STRING_EDIT

        public static final java.net.URI GLYPH_STRING_EDIT
      • GLYPH_SUBMIT

        public static final java.net.URI GLYPH_SUBMIT
      • GLYPH_SUBTRACT

        public static final java.net.URI GLYPH_SUBTRACT
      • GLYPH_THUMBNAILS

        public static final java.net.URI GLYPH_THUMBNAILS
      • GLYPH_TREE

        public static final java.net.URI GLYPH_TREE
      • GLYPH_UNSELECTED

        public static final java.net.URI GLYPH_UNSELECTED
      • GLYPH_UPLOAD

        public static final java.net.URI GLYPH_UPLOAD
      • GLYPH_USER

        public static final java.net.URI GLYPH_USER
      • GLYPH_VERIFY

        public static final java.net.URI GLYPH_VERIFY
      • GLYPH_VIEW

        public static final java.net.URI GLYPH_VIEW
      • GLYPH_WARN

        public static final java.net.URI GLYPH_WARN
      • MESSAGE_BUSY

        public static final java.lang.String MESSAGE_BUSY
      • MESSAGE_PASSWORD_INVALID

        public static final java.lang.String MESSAGE_PASSWORD_INVALID
      • MESSAGE_PASSWORD_UNVERIFIED

        public static final java.lang.String MESSAGE_PASSWORD_UNVERIFIED
      • MESSAGE_TASK_SUCCESS

        public static final java.lang.String MESSAGE_TASK_SUCCESS
      • MESSAGE_USER_INVALID

        public static final java.lang.String MESSAGE_USER_INVALID
      • MESSAGE_USER_EXISTS

        public static final java.lang.String MESSAGE_USER_EXISTS
      • CURSOR_CROSSHAIR

        public static final java.net.URI CURSOR_CROSSHAIR
      • CURSOR_DEFAULT

        public static final java.net.URI CURSOR_DEFAULT
      • CURSOR_HELP

        public static final java.net.URI CURSOR_HELP
      • CURSOR_MOVE

        public static final java.net.URI CURSOR_MOVE
      • CURSOR_POINTER

        public static final java.net.URI CURSOR_POINTER
      • CURSOR_PROGRESS

        public static final java.net.URI CURSOR_PROGRESS
      • CURSOR_RESIZE_LINE_FAR

        public static final java.net.URI CURSOR_RESIZE_LINE_FAR
      • CURSOR_RESIZE_LINE_FAR_PAGE_FAR

        public static final java.net.URI CURSOR_RESIZE_LINE_FAR_PAGE_FAR
      • CURSOR_RESIZE_LINE_FAR_PAGE_NEAR

        public static final java.net.URI CURSOR_RESIZE_LINE_FAR_PAGE_NEAR
      • CURSOR_RESIZE_LINE_NEAR

        public static final java.net.URI CURSOR_RESIZE_LINE_NEAR
      • CURSOR_RESIZE_LINE_NEAR_PAGE_FAR

        public static final java.net.URI CURSOR_RESIZE_LINE_NEAR_PAGE_FAR
      • CURSOR_RESIZE_LINE_NEAR_PAGE_NEAR

        public static final java.net.URI CURSOR_RESIZE_LINE_NEAR_PAGE_NEAR
      • CURSOR_RESIZE_PAGE_FAR

        public static final java.net.URI CURSOR_RESIZE_PAGE_FAR
      • CURSOR_RESIZE_PAGE_NEAR

        public static final java.net.URI CURSOR_RESIZE_PAGE_NEAR
      • CURSOR_TEXT

        public static final java.net.URI CURSOR_TEXT
      • CURSOR_WAIT

        public static final java.net.URI CURSOR_WAIT
      • SLIDER_THUMB_X_IMAGE

        public static final java.net.URI SLIDER_THUMB_X_IMAGE
      • SLIDER_THUMB_Y_IMAGE

        public static final java.net.URI SLIDER_THUMB_Y_IMAGE
      • SLIDER_TRACK_X_IMAGE

        public static final java.net.URI SLIDER_TRACK_X_IMAGE
      • SLIDER_TRACK_Y_IMAGE

        public static final java.net.URI SLIDER_TRACK_Y_IMAGE
    • Constructor Detail

      • Theme

        public Theme​(java.net.URI uri,
                     io.urf.model.UrfResourceDescription description)
        URI and description constructor.
        Parameters:
        uri - The URI of the theme.
        description - The theme description, loaded from a legacy Guise theme file.
    • Method Detail

      • getDescription

        public io.urf.model.UrfResourceDescription getDescription()
      • getParent

        public Theme getParent()
        Returns:
        The theme parent, or null if there is no resolving parent.
      • setParent

        public void setParent​(Theme newParent)
        Sets the theme parent.
        Parameters:
        newParent - The new theme parent, or null if there should be no resolving parent.
      • getClassRules

        public java.util.Set<Rule> getClassRules​(java.lang.Object object)
        Retrieves the set of rules that selects the class of the given object, including parent classes. It is not guaranteed that the object will match all or any of the returned rules; only that the object's class is used as part of the selections of the returned rules.
        Parameters:
        object - The object for which class-selected rules should be returned.
        Returns:
        A set of all rules that reference a class that selects the given object's class.
        Throws:
        java.lang.NullPointerException - if the given object is null.
      • getURI

        public java.net.URI getURI()
      • getParentURI

        public java.net.URI getParentURI()
        Retrieves the URI indicating the parent theme.
        Returns:
        The URI indicating the parent theme, or null if no parent theme is indicated or the value is not a URI.
      • getResourceResources

        public java.util.Set<java.lang.Object> getResourceResources​(java.util.Locale locale)
        Retrieves the resources URF resources. Each resource may indicate an external set of resources to load by providing a reference URI, or be a map of resource definitions.
        Parameters:
        locale - The locale of the resource to be retrieved.
        Returns:
        The list of resources that indicate resources locations and/or contain resource definitions.
      • updateRules

        public void updateRules()
                         throws java.lang.ClassNotFoundException
        Updates the internal maps of rules. This method should be called after rules are modified so that rules will be applied correctly in the future.
        Throws:
        java.lang.ClassNotFoundException - if one of the rules selects a class that cannot be found.
      • apply

        public void apply​(java.lang.Object object)
        Applies this theme to the given object. Any parent theme is first applied to the object before this theme is applied.
        Parameters:
        object - The object to which this theme should be applied.
        Throws:
        java.lang.NullPointerException - if the given object is null.
        java.lang.IllegalStateException - if a resource is a Java-typed resource the class of which cannot be found.
        java.lang.IllegalStateException - if a particular value is not an appropriate argument for the corresponding property.
        java.lang.IllegalStateException - If a particular property could not be accessed.
        java.lang.IllegalStateException - if a resource indicates a Java class the constructor of which throws an exception.