2 * Meviz - Various tools collection to work with multimedia. Author: Svjatoslav Agejenko.
3 * This project is released under Creative Commons Zero (CC0) license.
7 package eu.svjatoslav.meviz.htmlindexer.layouts;
9 import eu.svjatoslav.meviz.htmlindexer.IndexingContext;
10 import eu.svjatoslav.meviz.htmlindexer.indexer.AbstractIndexer;
11 import eu.svjatoslav.meviz.htmlindexer.metadata.DirectoryMetadata;
12 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.AbstractFile;
13 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Picture;
14 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Video;
16 import java.util.List;
19 * In order to have possibility of several different layouts per directory.
20 * Universal interface is defined.
22 * Layout implementation is responsible for actual HTML generation.
25 public interface Layout {
30 void enlistDirectory(AbstractFile directory,
31 DirectoryMetadata parentDirectoryMetadata);
36 void enlistFile(AbstractFile file,
37 DirectoryMetadata parentDirectoryMetadata);
42 void enlistImage(Picture picture,
43 DirectoryMetadata parentDirectoryMetadata);
48 void enlistVideo(Video file);
51 * Return layout specific suffix that will be appended between
52 * index(suffix).html of generated file. This way multiple layouts can
53 * coexist in the same directory, each residing in its own HTML file.
55 String getFileNameSuffix();
58 * After necessary files have been enlisted for particular directory, use
59 * this method to retrieve generated HTML result.
61 String getHtml(final boolean showTitle,
62 final boolean doHtmlHeaderAndFooter, DirectoryMetadata metadata)
66 * Initialize layout for particular directory.
68 void init(String galleryTitle, List<String> path,
69 final AbstractIndexer indexer, IndexingContext context);