Organization of a skin

The file and directory structure of a skin directory is as follows:


[Skin name]

-— Property file containing meta information (Properties: author, username, company, version, creationDate, lastModifiedDate, description, homePage, requiredJalbumVersion, autoWidgetInjection, fullSiteSupport, fullVideoSupport, skinFamily (v14+), preventCopy (v14+) and makeWebLocationSlides (v14+). See API for full details.

Skin developers can use the file to state what version of jAlbum they require and jAlbum will alert users of incompatibility if necessary. But if they wish to do version checking manually, they are encouraged to use the VersionNumber class. and its compareTo method to get it right.

- index.htt1 — Template file for index pages.
- slide.htt — Template file for slide show pages (was mandatory until v8.6)
- embed.htt — Template file for customizing album embedding. Since v10
- frameset.htt — Template file to describe albums that uses frames
- common.css — Common style sheet file (intended to be shared by multiple styles). Will be processed and added to the "res" directory of the generated album. (since v8.5.3)
- hints.jap2 — File containing recommended skin presets. Use if skin is intended to have a certain image size for instance. File format is simply a subset of a jAlbum project file.
- earlyinit.groovy — script that is executed after onload but before init (album generation). This allows the skin developer to perform operations like ignoring certain object types without having to exclude and, possibly, after build re-include those object types.
- init.groovy — script that is executed on album generation
- predir.groovy — script that is executed before an album directory has been processed (since 14.1)
- postdir.groovy — script that is executed after an album directory has been processed (since 8.5.3)
- finally.groovy — script that is executed after album generation (since v8.0). Also see executedNormally variable
- onload.groovy3 — script that is executed on skin selection/loading
- preview.jpg — Preview image
- headless-settings.jap — The file contains default values for the skin's variables. Only exists if created by Menu/Tools/Skin developer/Prepare for online and console use… It is not required for skins that use a file.

Note, Groovy (.groovy), JavaScript (.js) and BeanShall (.bsh) files can be used, but note BeanShell is deprecated.

- folder.png — Icon used for directory links
- movie.png — Icon used for movie links
- (additional images and files that you need. All are copied to the res directory of generated albums)

- (style sheet files. Example "bright.css". Will appear for selection in jAlbum. The selected file will be processed and added as style.css in the res directory of the generated album).
- Style-specific resource directories (same base name as style file. Example "bright"). Resource files put here have precedence over those put in the general "res" directory.
-Style specific preview images (same base name as style file. Example "bright.jpg")
- Style specific hints2 (same base name as style file. Example "bright.jap"). Applied when skin is loaded and when user changes style. See hints.jap. Since v8.6

- Skins may add additional page template files like "Contact.htt" or "About.htt" here. These will be made available to users to pick from via jAlbum's context menu and copied on request from the skin to the user's project. Since 10.6

- — Property file(s). Stores text strings for a certain language for multilingual skins (UTF-8 encoded). The language part of the file name is a lowercase ISO two character code

- Java class files (compiled scripts in order to gain speed for instance)
- SkinModel 4

- Java class files packaged as .jar files (usually 3:rd party libraries).

1 Mandatory file or folder

2 You should generally not use hints for other things than image sizes and thumbnail sizes, rows and columns. Specifically don't use hints to change directories or scaling quality as this confuses the user. Hints are respected on users selecting a skin but not on loading a project.

3 Default values should always be specified either within the GUI code and/or in

4 Only include with a non-compiled skin, compiled skins include the file within the skin’s jar file.