package eu.svjatoslav.meviz.htmlindexer;
-import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
-import java.io.FileReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import eu.svjatoslav.commons.file.IOHelper;
import eu.svjatoslav.commons.network.UrlParamEncoder;
-import eu.svjatoslav.meviz.htmlindexer.layouts.MixedLayout;
import eu.svjatoslav.meviz.htmlindexer.metadata.Dimension;
import eu.svjatoslav.meviz.htmlindexer.metadata.DirectoryMetadata;
import eu.svjatoslav.meviz.htmlindexer.metadata.MetadadaHelper;
public boolean canWriteIndexFile(final File indexFile)
throws FileNotFoundException, IOException {
- boolean canWriteIndexFile = false;
- if (indexFile.exists()) {
- // if file already exists, make sure that we can overwrite
- // it
- final FileReader fileReader = new FileReader(indexFile);
- final BufferedReader reader = new BufferedReader(fileReader);
+ if (!indexFile.exists())
+ return true;
- parseFile: {
- while (true) {
- final String line = reader.readLine();
-
- if (line == null)
- break parseFile;
-
- if (line.contains(Constants.HTML_MAGIC_STRING)) {
- canWriteIndexFile = true;
- break parseFile;
- }
- }
- }
-
- reader.close();
- fileReader.close();
- } else
- canWriteIndexFile = true;
- return canWriteIndexFile;
+ return Utils.isMevizGeneratedIndexFile(indexFile);
}
public void cleanupUnusedMetadataFiles() {
public void generateHtmlFromMetadata(final HashSet<Layout> layouts) {
// Generate HTML from metadata
- for (final Layout layout : layouts) {
-
- final String indexFilePath = directoryToIndex.getAbsolutePath()
- + "/index" + layout.getFileNameSuffix() + ".html";
-
+ for (final Layout layout : layouts)
try {
+ final File indexFile = Utils.getLayoutIndexFile(layout,
+ directoryToIndex);
- final File indexFile = new File(indexFilePath);
if (canWriteIndexFile(indexFile)) {
indexForLayout(layout);
.getHtml(true, true).getBytes());
}
} catch (final Exception e) {
- logger.error("Error writing index file to:" + indexFilePath, e);
+ logger.error("Error writing index file. ", e);
}
- }
}
public List<String> getChildPath(final File file) {
}
public void initializeLayouts() {
- layouts = new HashSet<Layout>();
- layouts.add(new MixedLayout());
+
+ layouts = Utils.getLayouts();
final String galleryTitle = commandlineHandler.getGalleryTitle();
}
public void initializeThumbnailsDirectory() {
- // initialize thumbnails directory
- thumbnailsPath = directoryToIndex.getAbsolutePath() + "/"
- + Constants.THUMBNAILS_DIRECTORY_NAME + "/";
+ final File thumbnailsDirectory = Utils
+ .getThumbnailsDirectory(directoryToIndex);
- // ensure thumbnails directory exists
- final File thumbnailsDirectory = new File(thumbnailsPath);
if (!thumbnailsDirectory.exists())
thumbnailsDirectory.mkdirs();
}