33,11 → 33,13 |
|
protected Logger logger; |
protected Thumbnailer thumbnailer; |
protected ConfigRoot config; |
protected File imagesRoot; |
protected int columns = DEFAULT_COLUMNS; |
protected int rows = DEFAULT_ROWS; |
protected ImagesFilter imagesFilter; |
protected Comparator fileNameComparator = new FileNameComparator(true); |
protected Digester configDigester = createConfigDigester(); |
protected Digester metaDigester = createMetaDigester(); |
protected Map metaInfos = new Hashtable(); // <File, MetaInfo> |
|
46,13 → 48,76 |
this.logger = Logger.getLogger(this.getClass()); |
} |
|
public void init(String imagesRoot, String imagesMask, |
String cacheDir, String thumbnailFormat, |
Integer smallWidth, Integer smallHeight, |
Integer mediumWidth, Integer mediumHeight, |
Integer columns, Integer rows, |
String dirTemplate, String dirThumbnailPositions) |
protected Digester createConfigDigester() |
{ |
/* |
4 <uri>children</uri> |
5 <images-root>/home/data/photos</images-root> |
6 <cache-dir>/home/data/photos/.cache</cache-dir> |
7 <thumbnail-format>jpg</thumbnail-format> |
8 <columns>6</columns> |
9 <rows>5</rows> |
10 <images-mask>*.jpeg</images-mask> |
11 <images-mask>*.jpg</images-mask> |
12 <dir-thumbnail> |
13 <template>images/dir_template.gif</template> |
14 <thumbnail> |
15 <left>5</left> |
16 <top>9</top> |
17 <width>40</width> |
18 <height>40</height> |
19 <align>center</align> |
20 <valign>center</valign> |
*/ |
Digester digester = new Digester(); |
digester.setValidating(false); |
|
digester.addObjectCreate("photos", ConfigRoot.class); |
|
digester.addObjectCreate("photos/branch", ConfigBranch.class); |
digester.addBeanPropertySetter("photos/branch/uri", "uri"); |
digester.addBeanPropertySetter("photos/branch/images-root", "imagesRoot"); |
digester.addBeanPropertySetter("photos/branch/cache-dir", "cacheDir"); |
digester.addBeanPropertySetter("photos/branch/thumbnail-format", "thumbnailFormat"); |
digester.addBeanPropertySetter("photos/branch/columns", "columns"); |
digester.addBeanPropertySetter("photos/branch/rows", "rows"); |
|
// FIXME images-mask |
|
digester.addSetNext("photos/branch", "addBranch"); |
/* digester.addBeanPropertySetter("meta/item/subtitle", "subtitle"); |
digester.addSetProperties("meta/item/subtitle", "mime", "subtitleMime"); |
digester.addBeanPropertySetter("meta/item/comment", "comment"); |
digester.addSetProperties("meta/item/comment", "mime", "commentMime"); |
digester.addSetNext("photos/branch", "addItem"); |
*/ |
return digester; |
} |
|
protected Digester createMetaDigester() |
{ |
Digester digester = new Digester(); |
digester.setValidating(false); |
|
digester.addObjectCreate("meta", MetaInfo.class); |
|
digester.addObjectCreate("meta/item", MetaInfoItem.class); |
digester.addSetProperties("meta/item", "id", "id"); |
digester.addBeanPropertySetter("meta/item/title", "title"); |
digester.addBeanPropertySetter("meta/item/subtitle", "subtitle"); |
digester.addSetProperties("meta/item/subtitle", "mime", "subtitleMime"); |
digester.addBeanPropertySetter("meta/item/comment", "comment"); |
digester.addSetProperties("meta/item/comment", "mime", "commentMime"); |
digester.addSetNext("meta/item", "addItem"); |
|
return digester; |
} |
|
public void init(ResourceFactory resourceFactory, String configPath) |
{ |
logger.info("starting"); |
config = (ConfigRoot)configDigester.parse(resourceFactory.getAsStream(configPath)); |
/* |
this.imagesRoot = new File(imagesRoot); |
this.imagesFilter = new ImagesFilter(imagesMask); |
if(columns != null) this.columns = columns.intValue(); |
85,7 → 150,7 |
catch(Exception ex) { |
logger.error("init thumbnailer", ex); |
} |
|
*/ |
logger.info("started"); |
} |
|
228,25 → 293,6 |
} |
} |
|
protected Digester createMetaDigester() |
{ |
Digester digester = new Digester(); |
digester.setValidating(false); |
|
digester.addObjectCreate("meta", MetaInfo.class); |
|
digester.addObjectCreate("meta/item", MetaInfoItem.class); |
digester.addSetProperties("meta/item", "id", "id"); |
digester.addBeanPropertySetter("meta/item/title", "title"); |
digester.addBeanPropertySetter("meta/item/subtitle", "subtitle"); |
digester.addSetProperties("meta/item/subtitle", "mime", "subtitleMime"); |
digester.addBeanPropertySetter("meta/item/comment", "comment"); |
digester.addSetProperties("meta/item/comment", "mime", "commentMime"); |
digester.addSetNext("meta/item", "addItem"); |
|
return digester; |
} |
|
protected MetaInfo getMetaInfo(File dir) |
throws IOException, SAXException |
{ |